Five evidence streams, deliberately not a health score. Each one says what it can and cannot see; the regime read is a statement about coverage, not the market.
House-price momentum from the repeat-sales indices.
The single-family construction pipeline: permits, starts, under construction, completions.
The mortgage payment burden on incomes.
Mortgage delinquencies — the only distress evidence that is free.
Which housing regimes the evidence can even support — a coverage statement, not a market call.
| COMPU1USASF completions, US (SAAR) — SF new supply arriving | 878 | 30 | 2026-07-01 | |
| COMPUTSAhousing completions, US (SAAR) — new supply arriving | 1,212 | 33 | 2026-07-01 | |
| CSUSHPINSAS&P Cotality Case-Shiller US national HPI (NSA) — corroborating repeat-sales; YoY is the clean read | 336.66 | 100 | 2026-06-01 | |
| DRSFRMACBSdelinquency rate on SF residential mortgages (SA) — the only free national distress leg (delinquency-only; cannot evidence forced sale) | 1.86 | 20 | 2026-04-01 | |
| HNFSEPUSSAnew one-family homes for sale, US (SA) — new-home inventory | 488 | 92 | 2026-07-01 | |
| HOUST1FSF housing starts, US (SAAR) | 808 | 25 | 2026-07-01 | |
| HPIPONM226SFHFA purchase-only HPI, US (SA) — primary repeat-sales price-momentum workhorse | 442.53 | 100 | 2026-06-01 | |
| HSN1Fnew one-family houses sold, US (SAAR) — new-home demand (registered ahead of the demand leg) | 607 | 33 | 2026-07-01 | |
| MDSPmortgage debt service payments as % of disposable income — the direct affordability/burden tell | 5.88 | 28 | 2026-01-01 | |
| MEHOINUSA672Nreal median household income, US (ANNUAL: one observation per year, released ~Sep for the prior year) - income leg for payment-to-income | 83,730 | n/a | 2024-01-01 | |
| MORTGAGE30US30y fixed mortgage rate (Freddie PMMS) — financing cost | 6.71 | 57 | 2026-09-03 | |
| MSACSRmonthly supply of new houses, US (SA) — the new-home oversupply tell; level percentile is meaningful (mean-reverting) | 9.6 | 96 | 2026-07-01 | |
| MSPUSmedian sales price of houses sold, US — mix-SENSITIVE, context only, never the momentum signal (pack §4.4) | 410,700 | 90 | 2026-04-01 | |
| PERMIT1SF building permits, US (SAAR) — leading SF supply | 894 | 41 | 2026-07-01 | |
| UNDCON1USASF units under construction, US (SA) — SF pipeline in flight | 579 | 50 | 2026-07-01 | |
| UNDCONTSAhousing units under construction, US (SA) — pipeline in flight | 1,262 | 81 | 2026-07-01 | |
| USSTHPIFHFA all-transactions HPI, US (NSA) — deep quarterly price context (1975→) | 719.87 | 100 | 2026-04-01 |
Whether the PLATFORM is working — not a market gauge. Status degraded.
in-app indicator: it cannot report that the app itself is unreachable — if the process is down, nothing answers here at all
The 10-year Treasury futures (ZN) daily settle versus a multi-year rising support line drawn through two owner-verified lows (Oct-2023, Jan-2025), priced in 32nds.
A confirmed break of multi-year support in the world's benchmark bond is the S2 'vigilante break' headline condition — the moment the bond market stops absorbing fiscal expansion quietly. Deliberately a HUMAN read: the break informs judgment, it never machine-triggers anything.
Line = linear interpolation through the two anchors. Daily settles come from the free Yahoo ZN=F feed, with any owner-pasted settle correcting per date (a pasted number beats a scraped one). Break = settle < line − 0.25pt; FIVE consecutive settles below confirm (≈ one trading week of follow-through, but every observation a completed session — both prior defects were partial-period bars counted as settled closes); reclaim = settle > line + 0.25.
intact / provisional_break / confirmed_break / reclaimed, plus distance in points (32nds format: 109'06 = 109 + 6/32). The velocity chip (|Δ10y| ≥ 25bp per 5 sessions) marks a FAST move — S2 requires speed, not drift.
distance_pts is the fragility meter: within ±0.25 of the line, one bad session starts the clock and five decide it — but see `cite` before quoting it as a level.
Spot gold divided by WTI crude, on matched dates. Currently one ounce of gold buys this many barrels of oil.
It separates WHY hard assets are bid: a HIGH ratio = gold outrunning oil = a monetary/debasement bid (Gromen's cycle call is gold/oil > 100). A LOW/compressing ratio = oil outrunning gold = an energy/war shock (S3 evidence, not debasement). Same 'commodities up' headline, opposite scenarios.
MD_XAUUSD / DCOILWTICO, aligned dates only (the feeds straggle; dividing different days fabricates the ratio). Bands recalibrated 2026-07 to the empirical 2007-2026 distribution.
low < 16 (bottom quartile) · normal 16-44 · elevated 44-60 · extreme > 60 (≈97th percentile — deliberately conservative so 'extreme' stays rare). The 20-session slope is the S3 condition: compressing = war bid building.
Compression below ~44 with oil leading would flip the read from monetary bid toward energy shock; expansion through 60 says debasement bid, not war.
A nine-rung ladder over the Treasury market's plumbing, ordered by WHEN each layer speaks in a dysfunction sequence: the secured-funding TAIL (SOFR's 99th percentile against the policy floor, not the median), facility draws (SRF, FIMA, swap lines, the discount window), primary-dealer settlement FAILS, dealer repo financing, and auction absorption. It serves an ordinal `tier` 0–3 with the mechanical conditions that fired, plus MOVE and HY OAS as `confirmation`.
The platform's own doctrine says the earliest-firing layers matter most, and before this block it held rung 1 at the median only, settlement not at all, and dealer financing at the inventory half — while the two scenario tripwires for a bond break were the two instruments that fire LAST. Measured: in 2019-09 the credit confirmer NEVER MOVED (BAA10Y did not widen 50bp/20 sessions, VIX never reached 30, 10y realized vol never reached its p95) through the entire repo squeeze. A confirmation-led read would have shown nothing at all.
MOVE and HY OAS cannot raise the tier — a test drives MOVE to 200 and HY to +300bp against quiet rungs and requires tier 0. Tier 1 = the funding tail at or over its measured band (20bp over the spliced IOER/IORB floor) for 2 consecutive sessions, or the same tail's 3-session slope clearing +10bp for 2 consecutive sessions. Tier 2 = tier 1 AND fails ≥250,000 for 2 weeks. Tier 3 = tier 2 AND a facility draw, a named policy response, or weak auction absorption. A STALE input can never count as fired, and with both SOFR legs stale the block refuses to classify rather than gate on a number nobody refreshed. NOT a regime vote.
Read the RUNG, not the number. tier 0 orderly · 1 funding_strain · 2 settlement_strain · 3 dysfunction, and `fired[]` names each mechanical condition that is true right now. Entries flagged `calendar_effect` landed in the month/quarter turn, where a third to two thirds of all historical firings sit — the tier still enters (2019-09 itself began at a quarter-adjacent settlement date) but the flag is there to discount it. Two legs carry NO band on purpose: `gcf_tri_bp` measured LATE (13 sessions behind the tail in 2019-09) and `sofr_tgcr_bp` discriminates nothing (p99 of 5.95bp). Fails NEVER raise a tier alone — the all-time maximum of the fails series falls in 2016-03, a window with no funding stress at all. The block never says 'the basis trade is unwinding'; attribution is the analyst's.
Tier 0→1 flips when the SOFR tail holds ≥20bp over the floor for two sessions or ramps +10bp in three. The falsifier is the block's OWN `record`: it counts its tier-1 entries over 90 sessions against a base rate measured at 1.17 per 90 ex-episode (docs/evidence/TREASURY_FUNCTION_CALIBRATION.md) and sets `self_alert` when it exceeds 2×. If tier 1 fires repeatedly and tier 2 never follows, the bands are wrong or the ladder is — and the block announces that about itself rather than waiting for a backtest nobody runs.
| leg | latest | band | percentile | as of |
|---|---|---|---|---|
| sofr_iorb_bp | 1 | no band -- measurement refused one | 86% of 8.4y | 2026-09-03 |
| sofr_p99_iorb_bp | 9 | band 20 | 75% of 8.4y | 2026-09-03 |
| sofr_p99_p01_bp | 14 | no band -- measurement refused one | 34% of 8.4y | 2026-09-03 |
| sofr_tgcr_bp | 2 | no band -- measurement refused one | 72% of 8.4y | 2026-09-03 |
| gcf_tri_bp | 6 | no band -- measurement refused one | 54% of 8.3y | 2026-09-02 |
| sofr_vol_bn | 2,949 | no band -- measurement refused one | 90% of 8.4y | 2026-09-03 |
| dvp_ov_bn | 3,403 | no band -- measurement refused one | 88% of 8.3y | 2026-09-03 |
| floor | 3.65 | no band -- measurement refused one | - | 2026-09-07 |
| leg | latest | band | percentile | as of |
|---|---|---|---|---|
| srf_bn | 0 | band 5 | 63% of 5.1y | 2026-09-04 |
| fima_mn | 0 | no band -- measurement refused one | 93% of 23.7y | 2026-09-02 |
| swap_mn | 132 | no band -- measurement refused one | 51% of 23.7y | 2026-09-02 |
| foreign_rrp_mn | 357,217 | no band -- measurement refused one | 92% of 23.7y | 2026-09-02 |
| dw_primary_mn | 5,282 | no band -- measurement refused one | 83% of 23.7y | 2026-09-02 |
| leg | latest | band | percentile | as of |
|---|---|---|---|---|
| ftd_ust_mn | 76,655 | band 250000 | 37% of 13.4y | 2026-08-26 |
| ftr_ust_mn | 88,371 | no band -- measurement refused one | 46% of 13.4y | 2026-08-26 |
| leg | latest | band | percentile | as of |
|---|---|---|---|---|
| repo_ust_mn | 3,010,949 | no band -- measurement refused one | 97% of 13.4y | 2026-08-26 |
| rrepo_ust_mn | 2,723,167 | no band -- measurement refused one | 97% of 13.4y | 2026-08-26 |
| net_financing | 287,782 | no band -- measurement refused one | - | 2026-08-26 |
| leg | latest | band | percentile | as of |
|---|---|---|---|---|
| absorption | normal | last 4 auctions | capacity_exhausted | ref |
The shape of the Treasury basis trade from three free sources: the FUTURES signature (leveraged funds net short against asset managers net long, and the difference between them), the FINANCING behind it (DVP repo outstanding volume, where sponsored repo lives), and the LENDERS supplying that cash (money-market funds' Treasury repo — what share of ALL their assets it is, and how much of it goes to the Fed instead of the private market).
The basis trade is a PRECONDITION — it loads the gun; a funding shock pulls the trigger. Crowding is what turns an ordinary funding squeeze into a forced unwind, so the size of the position standing on the plumbing is a different question from whether the plumbing is working, and it needs its own read beside the ladder rather than inside it. Until 2026-09-05 the platform collected only the leveraged half of the futures signature, so the difference that IS the signature could not be computed while the other half sat unparsed in rows already being fetched.
Every leg serves its own level, span-labelled percentile and change — no composite, no z, and no score. Both futures sides come off one weekly CFTC TFF report and one request; the difference is taken only on dates both legs report, so a vendor gap shortens the series rather than producing a wrong number. Not folded into `positioning` (that composite is equity-and-mood; this is Treasury plumbing). NOT a regime vote.
FOOTPRINT ONLY — never a size. The OFR Hedge Fund Monitor (Form PF) is the only sizing source and it is not keyless, so a dollar figure quoted by a panel member is a citation and not a series. `lev_minus_am` is a futures %OI DIFFERENCE in percentage points: deeply negative means leveraged funds are short the futures asset managers are long, the cash-and-carry seen from the exchange side. The CFTC dataset serves from 2022-02 only, so both futures legs are short_window and no percentile here is a claim about 2020. THE TWO MMF SHARES ARE DIFFERENT QUESTIONS and only mean something together: `mmf_rp_t_share_of_mmf` is ALLOCATION (of all money-fund cash, how much is lent against Treasuries) and `mmf_rp_fed_share_pct` is VENUE (of that repo, how much sits at the Fed). A high allocation with a high Fed share is cash parked at the Fed; the same allocation with a low Fed share is cash funding dealers — opposite readings of one number.
The footprint widening (lev_minus_am at the low end of its span) while `treasury_function` is at tier 0 is the loaded-gun state — the one this block exists to make visible, and NOT itself a warning. The falsifier for reading it as one: the footprint can sit at an extreme for quarters without an unwind, which is exactly why it is a precondition and the ladder is the trigger. Read the two together or neither.
| leg | latest | percentile | as of |
|---|---|---|---|
| zn_lev_net_pctoi | -39.09 | 22% of 4.6y | 2026-09-01 |
| zn_am_net_pctoi | 49.35 | 100% of 4.6y | 2026-09-01 |
| lev_minus_am_zn | -88.44 | 3% of 4.6y | 2026-09-01 |
| zb_lev_net_pctoi | -16.73 | 88% of 4.6y | 2026-09-01 |
| zb_am_net_pctoi | 30.06 | 67% of 4.6y | 2026-09-01 |
| lev_minus_am_zb | -46.79 | 68% of 4.6y | 2026-09-01 |
v2 (2026-09-05). Three blocks under one read: A, corporate PRICING (the rating tiers, the all-in effective yields, the Moody quality spread, the leveraged-loan ETFs); B, the PRIVATE complex (BDC discount, AAA CLO, and the two owner-pasted quarterlies); C, bank PLUMBING (bank→NBFI lending, SLOOS standards and demand, C&I loans). Plus composites from the St. Louis and Chicago Feds and the OFR, carried as context.
The private-credit concern is real and inflecting, but the primary read is 'contained, concentrated pockets' — so the right instrument is a TRANSMISSION watch, not a balance-sheet model. v2 exists because v2.4's gate was in the wrong place: it could reach `watch` on a bank-lending level and two quarterly headlines. The leak, if there is one, shows first in the daily PRICES of the instruments that fund private credit's own borrowers.
The gate is at least TWO market legs over band: leveraged loans (BKLN/SRLN), CLO AAA (JAAA/CLOA), the BDC discount (BIZD), CCC-vs-BB dispersion, and the all-in HY yield. Pastes, bank lending, SLOOS and every composite are CONTEXT and gate nothing — each says so in the payload. `transmitting` additionally requires the aggregate public index to break (v2.4's guard, unchanged). Every band is the 93rd percentile of that leg's own history, so the gate compares like with like. A stale leg cannot fire; a stale HY OAS refuses to classify at all. NOT a regime vote.
`watch` is the state that carries information — but NOT because it is early. Measured at symmetric bands, the market legs are COINCIDENT with the aggregate index (+3 sessions in 2020-03, zero in 2022 and 2023-03), not ahead of it. It earns its place because it says WHICH borrowers are repricing, which is a different fact from the index moving — so do not read it as a lesser `transmitting`, and do not read it as a head start either. `transmitting` lags by construction because it requires the index. Note the licence limit: the ICE legs and the gate itself have a rolling ~3-year window and can say nothing about 2020; the Moody pair (36.7y) is the only deep credit history here.
Two market legs over band with HY OAS still calm flips contained→watch; the index then breaking flips watch→transmitting. The falsifier for the systemic case: the market legs hold below band through the window while a scary default headline prints — under v2 that reads `contained`, because a paste cannot move the state. Bands and their measurement: docs/evidence/CREDIT_TRANSMISSION_V2_CALIBRATION.md.
| leg | latest | band | as of |
|---|---|---|---|
| bb_oas | 1.52 | context - gates nothing | 2026-09-03 |
| b_oas | 2.76 | context - gates nothing | 2026-09-03 |
| ccc_oas | 10.51 | context - gates nothing | 2026-09-03 |
| bbb_oas | 1 | context - gates nothing | 2026-09-03 |
| aaa_oas | 0.44 | context - gates nothing | 2026-09-03 |
| ccc_bb_bp | 899 | OVER BAND | 2026-09-03 |
| hy_eff_yield_pct | 7.15 | band 8.45 | 2026-09-03 |
| ig_eff_yield_pct | 5.51 | context - gates nothing | 2026-09-03 |
| baa_aaa_bp | 42 | context - gates nothing | 2026-09-03 |
| ig_oas | 0.81 | context - gates nothing | 2026-09-03 |
| bkln_drawdown_pct | 2.14 | band 6.67 | 2026-09-04 |
| srln_drawdown_pct | 2.48 | band 7.84 | 2026-09-04 |
| leg | latest | band | as of |
|---|---|---|---|
| bizd_drawdown_pct | 16.9 | band 25.15 | 2026-09-04 |
| jaaa_drawdown_pct | 0.47 | band 2.5 | 2026-09-04 |
| cloa_drawdown_pct | 0.36 | band 1.1 | 2026-09-04 |
| pc_default_idx | 2.51 | context - gates nothing | 2026-07-28 |
| bdc_nonaccrual | 1.99 | context - gates nothing | 2026-06-09 |
| leg | latest | band | as of |
|---|---|---|---|
| bank_nbfi | 1,509 | context - gates nothing | 2026-08-26 |
| sloos_standards | 0 | context - gates nothing | 2026-07-01 |
| sloos_demand | 16.1 | context - gates nothing | 2026-07-01 |
| busloans | 2,899 | context - gates nothing | 2026-07-01 |
Fed balance sheet (WALCL) minus the Treasury's checking account (TGA) minus reverse repo (RRP), in $bn — the dollars actually available to private markets after the two big sinks.
Risk assets swim with this tide; its 13-week annualized rate of change is the 'did policy flow accelerate?' input to the S2 deploy gate. The TGA percentile is a forward tell: a HIGH TGA is a drain already taken and a pending liquidity ADD when it draws down (e.g. into a refunding).
WALCL − WTREGEN − RRPONTSYD on aligned weekly (Wednesday) dates, all converted to $bn. The 13-week SAAR annualizes on the true calendar span, not an assumed 91 days.
Level matters less than direction and rate: SAAR positive and rising = expanding liquidity. Watch TGA percentile > ~80th as stored future liquidity. Bank reserves (WRESBAL) ride alongside as the scarcity QUANTITY — a high percentile is ample, a slide toward historic lows is the quantity side of scarcity, with SOFR−IORB the confirming price tell. With RRP drained to ~$0 (v2.2 §4.4), `rrp_floor_note` fires: the composite is now arithmetically just WALCL−TGA — read the two component impulses separately rather than the single blended number.
A sustained negative SAAR while equities grind higher is a divergence that historically resolves toward the liquidity, not the equities.
One percentile blending six independent positioning reads: COT equity futures, NAAIM (active managers' actual exposure), the AAII bull-bear spread (retail sentiment since 1987), realized vol (inverted — calm = complacent), IG credit spreads (inverted — tight = complacent), and policy-uncertainty (inverted) — plus a LEVERAGE layer added 2026-08-10: FINRA margin debt (as a YoY rate) and the household equity share of financial assets (Z.1 B.101).
Any single positioning series has blind spots; the composite asks whether the WHOLE crowd — institutions, retail, vol, credit — is leaning the same way. Historically bull markets get fragile when it reads crowded (high 70s+); washed-out lows precede sharp rallies because no one is left to sell. The leverage layer exists because of a specific FALSE NEGATIVE: the composite read 47.3rd percentile 'moderate' in a week when two independent analysts called positioning extreme, and its six original legs measured survey sentiment and futures — none measured borrowed money, which is the territory that claim actually points at. The gauge was true about what it measured and wrong about what was meant.
Each component is a percentile vs its own full history; the composite is their mean. Reduced free-data variant — paid components are excluded and it is labeled PARTIAL on principle. Margin debt votes on its YoY RATE, not its level: the level is monotonic and sits at the 100th percentile of its own history almost permanently, while the rate calibrates against the episodes you would check it against (+80.5% into March 2000, +62.6% into July 2007, +41.9% into October 2021). The leverage legs are weighted 1.0 and 0.5 of a 7.0 total so two slow-moving series register an extreme without pinning the blend to it.
READ `sub_reads` BEFORE THE HEADLINE when a claim is about a specific KIND of crowding. The blend answers 'how crowded overall'; it cannot answer 'crowded by WHAT measure', and the two halves come apart — sentiment and leverage can sit at opposite ends while the composite reads mid-range and describes neither. washed_out < 40th · moderate · elevated ≥ 60th · crowded ≥ 80th. Divergence between components (retail washed out while institutions crowd) is itself information.
This is a precondition, not a timer: extreme readings can persist for months. It changes the SIZE of what a surprise can do, not the date. The sharpest signal is the two layers DISAGREEING — leverage extended while surveys read cautious is a different setup from both leaning the same way, and only the sub-reads show it.
Per-ETF momentum (RSI-14) paired with a 3-month z-score of creation/redemption dollar flow (Δ shares outstanding × price) across ~21 ETFs, plus a separate basis_trade_proxy block: CFTC TFF leveraged-money net %OI in ZN/ZB Treasury futures (v2.2 §5.2) — a labeled proxy for basis-trade crowding, not an ETF.
The tripwire needs BOTH legs to fire: stretched price momentum (RSI ≥ 70) plus abnormal money piling in (flow-z ≥ +2) = a confirmed crowding signal with a ~3-week horizon. It feeds S1's 'no bearish index crowding' condition — one of the grind-higher checklist items. basis_trade_proxy is a separate loaded-gun inventory (§0.4): the cash-futures basis trade's size, never a trigger itself.
RSI is Wilder's 14-day. Flow = daily change in outstanding shares (FMP feed) × price — an ESTIMATE, always labeled. The z needs ~63 daily observations, so the flow leg cold-starts: until it fills, RSI alone can rule crowding OUT but never fire a signal. basis_trade_proxy reads CFTC's TFF dataset directly (distinct from the disaggregated COT collector) — latest net %OI + percentile vs own history, per tenor.
stretched_high/low = RSI beyond 70/30. confirmed = both legs. During cold-start the strip shows 'accumulating N/64'. basis_trade_proxy: deeply negative (net-short lev_money futures) at a low percentile is the basis trade's classic signature — a precondition, never a trigger.
RSI mean-reverting off the extreme, or flow-z decaying below +2, stands the signal down. basis_trade_proxy unwinding (net %OI reverting toward 0) is the loaded-gun inventory shrinking, not a catalyst by itself.
| ETF | RSI-14 | flow-z (3m) | signal | |
| IBIT | 67.3 | (31/64) | neutral | |
| USO | 66.2 | (31/64) | neutral | |
| XLE | 63.1 | (31/64) | neutral | |
| DBA | 58.7 | (31/64) | neutral | |
| GDX | 58.5 | (31/64) | neutral | |
| SPY | 55.6 | (57/64) | neutral | |
| XLK | 55.3 | (31/64) | neutral | |
| FXE | 54.2 | (31/64) | neutral | |
| QQQ | 53.6 | (31/64) | neutral | |
| SPHB | 53.2 | (31/64) | neutral | |
| SLV | 52.9 | (31/64) | neutral | |
| GLD | 52.4 | (31/64) | neutral | |
| SMH | 51.2 | (31/64) | neutral | |
| RSP | 49.3 | (31/64) | neutral | |
| IWM | 48.1 | (31/64) | neutral | |
| UUP | 48.0 | (31/64) | neutral | |
| TLT | 45.2 | (31/64) | neutral | |
| SPLV | 41.9 | (31/64) | neutral | |
| LQD | 40.1 | (31/64) | neutral | |
| HYG | 38.9 | (31/64) | neutral | |
| IEF | 38.9 | (31/64) | neutral |
A forward-looking composite of what leads global liquidity — four legs, all inverted so positive = tailwind: the broad dollar's yearly change, bond vol (21d realized vol of TLT, a labeled MOVE proxy), FX vol (21d realized vol of USD/JPY, a labeled proxy — one pair, not an index), and the mean DE/JP/UK 10y yield's yearly change (free OECD monthly series via FRED).
Liquidity moves markets on a lag; its LEADS move liquidity on a lag. A falling dollar + falling vol today is easier liquidity in ~3-6 months — forward context for how long a grind can run.
3-year z-scores of YoY changes, correlation-signed and averaged (v2.3: all four legs wired — the 'not wired' notes on three of them dissolved on contact with the source). Rates use diff-mode YoY (level change in points); indexes and vol use ratio. Two legs are realized-vol PROXIES for implied-vol indexes — direction-grade, not level-grade. Emits nothing below its 2-leg floor.
0-0.5 modest tailwind/headwind · 0.5-1.0 meaningful. Check proxy_legs and missing_components before leaning on the score.
A dollar trend reversal flips this with ~a quarter's warning before it shows in liquidity itself; a synchronized global-rate upturn does the same from the rates side.
The spread between the secured overnight funding rate (SOFR) and what the Fed pays on reserves (IORB), in basis points — plus Standing Repo Facility (SRF) usage riding alongside (v2.2 §4.4): nonzero/persistent draws on the Fed's repo backstop, the funding-stress tell that still moves now that RRP has drained to ~$0.
It is the earliest honest tell of reserve scarcity: when secured funding bids ABOVE the Fed's administered floor and stays there, banks are short reserves — the September-2019 repo spasm pattern. It gates the S4 'front-end stress' invalidation: bills stay bid until this clears. SRF corroborates from the quantity side: dealers borrowing from the backstop rather than the private repo market.
FRED SOFR minus IORB on common dates. Stress = spread > 0bp for 3 consecutive sessions (thresholds.yaml#policy_flow; LOW confidence, owner-tunable). SRF usage (RPONTSYD, distinct from RRPONTSYD) surfaces as latest $bn drawn + days nonzero in the trailing 20 sessions.
Negative (SOFR under the floor) = ample reserves, calm. Persistent positive = reserves scarce → expect Fed liquidity response (standing repo, bill buying). SRF usage rising in tandem corroborates from the quantity side.
One-day quarter-end spikes are noise (hence the 3-session rule); the signal is persistence — in both the spread and SRF draw days.
1-month realized volatility of TLT (20y+ Treasury ETF) — a FREE stand-in for the MOVE index, which has no free feed. When the owner pastes real MOVE, that manual value is shown alongside and is the primary reading.
Treasury vol is the system's pain gauge: the S2 thesis says MOVE ≥ 130 is always answered by policy ('the Alamo', Gromen) — with the standing caveat that Reserve-Management Purchases have likely lowered the effective trigger. The S2 deploy gate keys on MOVE rolling over FROM that extreme.
Annualized stdev of daily TLT log-returns over 21 sessions. NOTE the honest mismatch: this is realized PRICE vol; MOVE is implied YIELD vol in bp — so read the PERCENTILE vs its own history, never the level against MOVE thresholds.
calm ≤ 20th pct · normal · elevated ≥ 80th pct. The pasted MOVE (if present) reads against the real bands: calm < 100, elevated 100-130, Alamo ≥ 130 ×2 closes.
Percentile jumping regimes (calm → elevated inside a month) is the tell that the rates tape is destabilizing even before any trendline breaks.
The price gap between the international benchmark (Brent) and the US benchmark (WTI), in dollars.
Supply shocks that threaten seaborne/Middle-East flows (Hormuz) hit Brent first and hardest; a WIDENING spread is specifically international/war risk, distinct from a US demand story that moves both together. It corroborates or undercuts the S3 war-bid case alongside gold/oil compression and the war-risk proxy.
DCOILBRENTEU − DCOILWTICO on aligned dates.
Read the percentile: the spread's normal range is a few dollars; the extreme tail is where the geopolitical premium lives.
A spread round-tripping back to normal while WTI stays high reframes the story from geopolitics to demand.
A state machine over SPX/VIX realized vol: rv10/rv20/rv60 (annualized, from daily log returns), the variance risk premium (VIX − rv20), and the optional VIX3M term structure.
Vol regime is the tape's transmission character — the same headline lands very differently depending on whether systematic/vol-keyed flows are loading a position (LOADING), unwinding one (SHEDDING), or panicking (SHOCK). It's read jointly with range_state and the opex calendar, never alone.
Pure levels, first-true-wins precedence SHOCK > SHEDDING > LOADING > NEUTRAL (thresholds.yaml#vol_regime, LOW confidence, gated on a 2022/2023-24 calibration backtest). SHOCK confirms the SAME session it fires (owner-signed amendment); every other transition — including exiting SHOCK — needs 3 consecutive sessions of the target condition before it's confirmed.
persistence_days is how long the CONFIRMED state has held. rv_trend (compressing/expanding/flat) previews where SHEDDING/LOADING is heading before the state itself flips.
A single ≥2% session or rv20 crossing 26 flips to SHOCK immediately, no filter. This describes transmission character, never direction — it is a labeled model, not an observation of anyone's actual book.
A deterministic model of a vol-target book's equity exposure: min(cap, vol_target / rv20) computed daily on SPX closes, with 5- and 20-session deltas. Rising = mechanical buying queued by vol compression; falling = mechanical selling queued by a vol spike.
The largest price-insensitive equity flows are rule-bound: vol-control and vol-target books hold exposure as a fixed function of realized vol. vol_regime names the STATE (LOADING/SHEDDING); this names the DELTA — how much systematic demand or supply the last weeks of realized vol imply. It is the layer-2 (mechanical flow) instrument the panel lacked.
Published formula, no fit: exposure = min(cap, vol_target/rv20), vol_target and cap owner-tuned seeds in thresholds.yaml (defaults 12%/100%, LOW). Same SPX close series and rv construction as vol_regime. ESTIMATE, permanently — nobody observes the real books; treat the DIRECTION and the delta, never the level.
read ∈ releveraging / deleveraging / flat (5d delta vs a small flat band). A long releveraging run = fuel for continuation AND for the violence of the next air pocket — the exposure that got added mechanically comes out mechanically.
An rv20 spike flips it to deleveraging within days — and the queued selling is proportional to how far exposure had crept up. Transmission character only: never a market direction call, never a position. distance_to_flip is the CTA-trend mirror of this gauge.
For every market in the regime nowcast's basket: its current trend vote, the price level that would flip that vote, and the distance to it in both percent and sigma units (trailing 60-session daily-return stdev).
The regime quadrant is a snapshot; this shows how FRAGILE each vote is — a market voting 'up' one small move from flipping 'down' is a different kind of conviction than one that's run far from its flip level.
Reuses the regime nowcast's own vote mechanism (z of last value vs its trailing SMA, deadband-gated) — not a separate crossover rule — so the flip map describes the SAME vote the quadrant actually casts. flip_level solves the SMA update recurrence for the price where the vote would fully reverse.
Sorted by |dist_sigma| ascending — the top of the list is the most fragile vote in the basket. fragility=true means 4+ markets sit within half a sigma of their flip, i.e. the whole regime read is thin right now.
This IS the flip-watch list — a market crossing its own flip_level is, by construction, the event that changes the regime nowcast. PROXY, permanently: our trend rule's flip map, not CTA books.
| market | vote | flip level | dist % | dist σ |
| DCOILWTICO | · | 91.6749 | -0.21% | -0.07 |
| RSP/SPY | · | 0.2849 | -0.19% | -0.31 |
| T10YIE | ▲ | 2.3055 | +1.90% | 1.91 |
| CPER | ▲ | 38.2565 | +4.24% | 2.94 |
| MD_XAUUSD | ▲ | 4,236.7124 | +4.34% | 3.03 |
| BAMLH0A0HYM2 | ▼ | 2.7623 | -4.24% | -3.31 |
| VIXCLS | ▼ | 17.4256 | -21.69% | -3.33 |
| T5YIFR | ▲ | 2.2389 | +3.91% | 3.97 |
| DTWEXBGS | ▼ | 119.6825 | -1.15% | -4.25 |
| SP500 | ▲ | 7,424.1800 | +3.81% | 4.93 |
| BAMLC0A0CM | ▲ | 0.7678 | +5.21% | 5.23 |
| MD_USDJPY | ▼ | 160.7653 | -3.06% | -5.68 |
| DGS10 | ▲ | 4.4995 | +5.67% | 6.06 |
| IBIT | ▲ | 38.5008 | +14.88% | 6.19 |
| DFII10 | ▲ | 2.1597 | +10.76% | 7.21 |
Days to the next monthly/triple-witch options expiration, the next VIXpiration, and the % of (mega-cap) market cap in buyback blackout — the buyback bid is the market's biggest structural bid, and it goes dark on a schedule.
Mechanical flow around known dates (opex unclenching dealer hedges, buybacks going dark) shapes HOW a print trades even when it doesn't change what the print means — read jointly with vol_regime and range_state, never as a standalone call.
Opex/VIXpiration are pure date arithmetic (third Friday, NYSE holiday-shifted); zero collection. Blackout has TWO sources, in precedence: (1) an owner-seeded row in config/blackout.yaml WINS when present; else (2) a COMPUTED cap-weighted PROXY — for a curated mega-cap universe, a name is in blackout when today falls within ~5 weeks before its next earnings date through ~2 days after (FMP per-symbol earnings + market cap; source='computed_proxy'). The true 500-name figure isn't free (FMP gates the constituent list), so the proxy leans on the fact that buybacks AND market cap both concentrate in mega-caps.
blackout.source tells you which path produced it. A 'computed_proxy' pct is the cap-weighted mega-cap share in blackout — directional, labeled PROXY, NOT the true S&P 500 number. High (>~50%) = most of the buyback bid is dark right now, so the market loses its largest price-insensitive support; low = the bid is back on. names_in_blackout lists which mega-caps are currently dark, and 'coverage' says how many of the curated universe FMP's free tier actually served (it gates per-symbol earnings for ~40% of the names — the proxy runs over the resolvable heavyweights and states its base, never hides it).
Blackout swings on the earnings calendar: it ramps up ~5 weeks before each quarter's mega-cap earnings wave and drains as names report and their windows reopen. An owner seed in config/blackout.yaml overrides the proxy for any week.
A percentile read of how compressed or expanded the SPX daily trading range has been over the last 5 sessions vs its own 252-session history.
The FREE fallback for dealer-gamma character when no real GEX feed is present. When the owner's option lake IS present, the `gex` gauge computes real dealer gamma (net GEX, flip, walls) and is the authoritative read — range_state then just corroborates it from price. On its own it answers the narrower, honest question: is the tape's day-to-day range compressing (pinned) or expanding (amplifying)?
(high−low)/close, SPX, 5-session mean, percentiled against 252 sessions (SPX_HIGH/SPX_LOW backfilled + recurring-collected for exactly this). Falls back to close-to-close return dispersion, labeled PARTIAL, if high/low aren't available. read() joins the percentile with vol_regime's state and days-to-opex.
The served labels name what was MEASURED, not what it implies: compressed + LOADING + within a few days of opex reads `range_compressed_pre_opex`; an expanding range reads `range_expanding` regardless of vol state; everything else reads 'mixed' — resist the urge to force a story. Those two shapes are conventionally INTERPRETED as long-gamma/pinned and short-gamma/amplifying dealer character, and that reading is often right — but this gauge observes no gamma, so it does not assert one (it previously served 'short_gamma_amplifying' while `gex` was STALE at input_completeness 0.0). A dealer-positioning claim needs the `gex` gauge and its option chain.
The `gex` gauge is the real read now (computed from the owner's option lake, §P4 reversed 2026-07-16); this stays the free proxy for when that feed is absent. Always labeled PROXY: it infers character from price, it does not observe the options book — `gex` does.
Net dealer gamma exposure across the full SPX∪SPXW chain — the dollar hedging flow per 1% index move — plus the gamma flip level, and the call/put walls (the strikes where gamma is most concentrated). Computed from the owner's ThetaData-fed option lake (scrubbed gamma + open interest), once daily.
The buyback bid and vol-control flows have cousins in DEALER hedging: when dealers are net long gamma (positive GEX, spot above the flip) they sell rallies and buy dips — mechanically PINNING the tape into a range; when short gamma (negative, spot below the flip) they hedge WITH the move — amplifying it. It's the single best read on whether a market is pinned or primed to move, and it's the real version of what range_state only proxies.
Net GEX = signed Σ(gamma·OI)·100·spot²·0.01 over the chain (dealers long calls / short puts — a MODELED sign assumption). Headline uses the lake's stored scrubbed gamma; the flip re-prices gammas (Black-Scholes, stored IV) across ±12% spot to find the zero-crossing. Computed LOCALLY where the 4.4GB lake lives; only the small daily result crosses to the pipeline (the VPS never touches the lake). §P4 originally refused GEX as paid/fragile — reversed here because the owner's own primary chain makes it a rebuild-from-primary, not a vendor-signal ingest.
MODELED — read the SIGN (long/short gamma), the WALLS, and the PERCENTILE-vs-own-history, NEVER the absolute dollar level (it's normalization-dependent). Spot pinned just under a big call wall with high positive GEX = a coiled, range-bound tape; spot below the flip with negative GEX = every shock gets amplified. A high net-GEX percentile means unusually strong pinning.
The gamma_flip level IS the switch: spot crossing below it flips the whole tape from dealer-stabilized to dealer-amplified. Read jointly with vol_regime and the opex calendar. range_state is the free fallback when no lake feed is present.
National home-price momentum from two direct repeat-sales indices: FHFA purchase-only (SA, monthly) as the workhorse, Case-Shiller (NSA) corroborating. Each leg ships YoY, 3m and 6m annualised, an impulse label, and drawdown from its own peak.
Price is the housing input a macro read actually needs — it is the collateral value behind mortgage credit and the wealth effect behind consumption. It is deliberately NOT a housing score: per the pack's ADR-0004, which independently re-derived this platform's own 2026-07-15 quadrant demotion, no opaque single number collapses a market. This is evidence the supply, affordability, distress and regime reads consume; it is not a macro regime vote.
Repeat-sales indices are monotonic, so a LEVEL percentile sits near the 100th forever and says nothing — the YoY history is percentiled instead (the same lesson derive/roc encodes). Both legs are reported even when they disagree: a sign disagreement between FHFA and Case-Shiller is surfaced, never averaged away (rule 6). Geography does not exist at this tier; that is a coverage limit reported in `missing_critical`, never filled with a proxy. Bands are LOW-confidence seeds in thresholds.yaml#housing_price.
The two-part read — a level fact and a direction — is the whole output, and the level fact is the one that gets misquoted. An index 85% above its 2015-19 baseline means exactly that: the index is 85% higher. It is NOT 85% overvaluation and not a crash probability (owner directive 2026-07-23). Keep the level-fact and any danger-inference in separate sentences.
A rising drawdown is not a forced-sale signal and rising prices are not health. Either conclusion needs the distress and supply evidence — and the distress read cannot currently support the forced-sale half at all (see housing_distress).
How much NEW housing supply is authorised, being built, and arriving: the ~12-month chain of permits (authorisations) → starts → under construction (in flight) → completions (arriving), plus MSACSR, the months' supply of new houses, as the oversupply tell.
The pipeline is the closest thing housing has to a forward-looking series: a permit today is a completion in roughly a year, so a rolling-over top of the chain is visible long before the arrivals change. For a macro read it is the residential-investment impulse and the shelter-inflation supply side.
MSACSR is mean-reverting, so unlike the price indices its LEVEL percentile IS meaningful and is used directly. The pipeline legs carry rate-of-change; the chain is read in order, because a divergence between permits and completions is the informative state (authorisations falling while completions still arrive is the classic late-cycle shape). Single-family throughout, deliberately, to match MSACSR's own basis. Bands are LOW-confidence seeds.
This is the BUILDER's side of supply, not the market's. Existing-home listings are a separate leg and are not wired, so 'supply' here means new construction only — a housing market can be starved of resale inventory while builders are oversupplied, and this read sees only the second half.
High supply pressure means builders face competition. It is NOT automatically household distress (pack §6.2) — that inference needs the distress evidence, which nationally is delinquency-only.
| leg | latest | as of | pct | read |
| permits | 894 | 2026-07-01 | accelerating positive | |
| starts | 808 | 2026-07-01 | accelerating negative | |
| under_construction | 579 | 2026-07-01 | accelerating negative | |
| completions | 878 | 2026-07-01 | improving negative | |
| months_supply | 9.6 | 2026-07-01 | 96th | accelerating positive |
| new_for_sale | 488 | 2026-07-01 | positive, mixed |
The mortgage debt-service burden (MDSP — payments as a share of disposable personal income, quarterly since 2005), percentiled on its own history, with the 30-year mortgage rate and a computed payment-to-income PROXY beside it.
Affordability is the transmission from rates into housing activity, and the burden measure is the one that survives a price boom: prices and incomes both move, and MDSP is the ratio that already nets them. It is what turns 'rates are high' into 'households cannot carry the payment'.
MDSP is the CRITICAL leg — without it the read declines to classify rather than falling back on the proxy (a proxy standing in for the measure it approximates is how a gap becomes invisible). The payment-to-income proxy is computed from median sale price, the 30y rate and real median household income, and ships its assumptions on its face: principal and interest only, a stated down payment, excluding taxes, insurance and HOA — and its price and income legs are different vintages. Freshness is measured against an injected reference date, never against the freshest observation in its own set: self-reference once kept every leg permanently age-zero while the payload aged the same series and served a contradicting STALE alert.
A high percentile says the burden is stretched against its own 2005-onward history — a span that contains one housing bust and one boom, which is thin. Quote the span with the percentile (rule 11).
Stretched affordability constrains transaction VOLUME long before it moves prices: the marginal buyer leaves, the existing owner with a low fixed coupon does not sell. Read it as a turnover constraint first and a price signal second.
| leg | latest | as of | pct | read |
| debt_service | 5.88 | 2026-01-01 | 28th | |
| mortgage_rate | 6.71 | 2026-09-03 | 57th | |
| payment_to_income |
The single-family mortgage delinquency rate (DRSFRMACBS, quarterly SA, since 1991) with its level, percentile-vs-history and direction. That is the whole national read: delinquency only.
Distress is the leg that separates a price correction from a forced-sale cascade, and it is the one the debasement/housing-crash narratives lean on hardest — which is exactly why what is missing here is stated as loudly as what is present.
A false-alarm guard governs the read (pack §6.3): a RISE FROM A LOW BASE gets limited weight unless the absolute level, the historical percentile and persistence also confirm. Doubling off a record low is a large percentage change and a small fact.
**This read cannot establish a forced-sale downturn and does not try.** Foreclosure-stage data — starts, active foreclosure, completed REO — and the transmission from foreclosure into for-sale inventory have no free source (MBA / ICE / ATTOM are paid), so they are named in `cannot_establish` rather than proxied. Delinquency is a household falling behind; foreclosure is a house reaching the market, and only the second one is supply.
Because of that gap the `forced_sale_downturn` regime is DISABLED in the housing regime engine — not merely unmet, disabled. It cannot be reached on the evidence that exists, and the engine says so instead of inferring it.
| leg | latest | as of | pct | read |
| delinquency | 1.86 | 2026-04-01 | 20th |
A documented-rule regime classifier over the housing evidence reads, published together with an explicit ELIGIBILITY MATRIX: for every regime, whether it could be reached at all, and which evidence it is missing.
The matrix is the point, not the label. This ships the machinery and refuses the classifications the evidence cannot support (HOUSING_DEVIATION_REPORT §12) — a regime engine that always returns a regime is the opaque single number ADR-0004 and this platform's own quadrant demotion both rejected.
Each regime declares the critical evidence it requires and is INELIGIBLE until that evidence exists. A missing gauge is never inferred from the gauges on hand. With Tier-1 evidence only — price momentum, the single-family supply pipeline, affordability burden, delinquency — and no demand, listings, vacancy, turnover, employment, equity or foreclosure-stage evidence, most regimes are ineligible by construction.
**`mixed_or_uncertain` is a COVERAGE statement, not a market statement.** It means the platform cannot see enough to classify, NOT that the housing market is mixed. Reading it as a market read is the single most likely misuse of this block: quote it with the eligibility list, which names exactly what is missing.
The read changes when EVIDENCE arrives, not when the market moves — a new listings or foreclosure feed can flip a regime from ineligible to eligible without a single price changing. `forced_sale_downturn` stays disabled until foreclosure-stage and forced-supply evidence exist.
| regime | state | missing evidence | why |
| seller_advantaged_tight | ineligible | strong_demand, low_months_supply, positive_price_momentum | missing critical evidence |
| buyer_correction | ineligible | listings, dom_price_cuts, weak_demand | missing critical evidence |
| overbuilt_correction | ineligible | weak_demand, vacancy | missing critical evidence |
| frozen_stable | ineligible | low_activity, constrained_listings, low_distress | missing critical evidence |
| affordability_lockout | ineligible | weak_turnover, healthy_employment_equity | missing critical evidence |
| employment_led_stress | ineligible | deteriorating_employment | missing critical evidence |
| forced_sale_downturn | DISABLED | foreclosure_stage, forced_supply | DISABLED until foreclosure-stage + forced-supply evidence exists |
| liquidity_thaw | ineligible | improving_demand, improving_listings | missing critical evidence |
| recovery | ineligible | stabilizing_price_demand, receding_distress | missing critical evidence |
Five blocks from Treasury's own primary sources: TTM interest on the debt (% of TTM receipts + percentile vs own history), the TTM deficit run-rate, the marginal-vs-average coupon spread, the rollover wall (marketable debt maturing in 12m), and the bill share of marketable debt.
S2/S4 and half the tracker argue about fiscal dominance without ever measuring it. This turns 'debasement accelerating' from a mood into a checkable claim with a disconfirming case — the interest-share percentile falling, or the coupon spread going negative (rolling DOWN, not up).
FiscalData MTS (interest outlays, receipts, deficit — vintage-aware, revises) and MSPD (bill share, maturity schedule) for the direct legs; the marginal coupon is issuance-weighted trailing-90d TreasuryDirect auction high yields once the auction feed has accumulated, else a flat DGS blend labeled PROXY.
A rising interest-share percentile + a positive coupon spread (marginal > average) is the accelerant configuration: every rollover raises the bill. The rollover wall is APPROXIMATE (bills at maturity value, coupons at par).
The interest-share percentile turning down, or the coupon spread flipping negative (new issuance cheaper than the existing stock) — rolling down, not up.
Per-tenor (2Y–30Y) latest auction stats — bid-to-cover, dealer/indirect takedown %, size — each z-scored against the trailing same-tenor auctions, plus a tail (high yield minus the same-day CMT close, labeled PROXY unless the owner pastes the real when-issued tail). dealer_positioning (v2.2 §5.2) rides beside it: NY Fed weekly primary-dealer net coupon positions by maturity bucket — direct data, not a proxy.
Un-blocks the S4 absorption leg and reinstates the I-8 auction-tail falsifier — 'auctions are failing' becomes a scored observable (who is actually buying the debt) instead of an unscoreable narrative claim. dealer_positioning answers the adjacent question: who is WAREHOUSING the duration auctions distribute.
TreasuryDirect per-auction results, stored per auction date. z-scores are LEAVE-ONE-OUT vs the trailing N (default 12) PRIOR same-tenor auctions — the latest is never inside its own window, so |z| can legitimately exceed the in-sample n-point bound (a served 3.67 at n=12 is correct, not impossible; the block's z_convention field states this). A tenor with fewer than 6 prior auctions suppresses its z rather than printing off a thin sample; at n<=12 read z ordinally, never as a normal quantile. The tail benchmarks the same-day CMT close, falling back to the PRIOR session's close for the just-priced auction (labeled degraded — the same-day close publishes on a lag). The composite absorption read averages dealer-% z and bid-to-cover z across the last 4 auctions (across tenors). dealer_positioning is NY Fed's weekly PD statistics, per coupon maturity bucket (<=2y through >21y), latest $mn + percentile vs own history. The docket sub-block carries TreasuryDirect's ANNOUNCED upcoming note/bond auctions (~1 week horizon, cached nightly).
dealer_pct z > 0 = dealers forced to absorb MORE than usual (weak demand); indirect_pct z < 0 = foreign/institutional stepping back; bid-to-cover z < 0 = thinner book; tail > 0 = priced cheap to the screen. absorption.read = 'weak' when mean dealer z > +0.5 AND mean btc z < -0.5 over the last 4 auctions. A high-percentile dealer net position in a bucket means less room left to absorb more supply there. docket.results_pending names auctions that have PRICED but whose internals aren't ingested yet — read that tenor's served print as PRE-auction until the next collector run lands it.
absorption.read flipping from weak to normal (or vice versa), or an owner-pasted real when-issued tail contradicting the CMT-close proxy.
| tenor | bid-to-cover | dealer % | indirect % | tail | as of |
| 10Y | 2.53 (+0.49z) | 8.6 (-0.46z) | 76.7 (+0.90z) | +0.3bp PROXY | 2026-08-12 |
| 20Y | 2.53 (-0.78z) | 12.5 (+0.55z) | 62.9 (-0.44z) | +3.4bp PROXY | 2026-08-19 |
| 2Y | 2.6 (-0.10z) | 10.9 (-0.31z) | 66 (+5.60z) | +3.4bp PROXY | 2026-08-25 |
| 30Y | 2.39 (+0.01z) | 11.5 (+0.02z) | 66.8 (+0.18z) | +0.6bp PROXY | 2026-08-13 |
| 3Y | 2.71 (+0.81z) | 11.7 (-0.28z) | 64.2 (+0.03z) | +2.1bp PROXY | 2026-08-11 |
| 5Y | 2.37 (-0.03z) | 10 (-0.73z) | 61.5 (-0.45z) | +2.3bp PROXY | 2026-08-26 |
| 7Y | 2.5 (+0.66z) | 12.3 (+0.56z) | 60.8 (-0.41z) | -0.8bp PROXY | 2026-08-27 |
Every Treasury buyback operation, per (type, maturity bucket): what holders OFFERED, what Treasury ACCEPTED, the announced CAP, and the fill as a percent of that cap — plus the recent trend in offered volume.
The QRA dossier's §2b tracker entry claims Treasury acts to arrest disorderly long-end repricing and escalates as strain rises. Its first named confirming observable is realised size at or near the raised $4bn cap in the 10-20 and 20-30 buckets after 2026-09-09. The operations have been collected since 2026-08-21 and nothing read them, so the entry's own first test could not be scored.
Three numbers separate three states mechanically. demand_limited = offered below cap (holders did not bring the paper). capacity_constrained = Treasury bought its stated maximum and could not buy more — the 'put-like' signature. price_disciplined = Treasury had room and refused offers on price. Measured over 126 operations 2024-09..2026-08: 83 / 37 / 6 respectively, so a full fill is a real signal rather than a constant. `offered_to_cap` rides alongside as a magnitude and gates nothing — 98% of full-fill operations exceed 2x by arithmetic, so a second condition there would be theatre.
Read the long-end pair against the belly. On 2026-08-18 the 20-30 bucket filled 100% of a $2bn cap against $19.9bn offered (9.9x) while the 7-10 bucket was price-disciplined or demand-limited — Treasury capacity-constrained at the long end and unconstrained in the belly is a different fact from either alone.
A cap RAISE with fills still at 100% is §2b's escalation; fills falling below cap while offers stay heavy is Treasury choosing not to buy, which reads the programme the other way. Descriptive either way — the entry warns against the unfalsifiable version, where intervention proves control and its absence proves its loss.
| bucket | latest op | offered | cap | fill | what it did |
| CM_1M2Y | 2026-09-03 | $28.3bn | $12.5bn | 100% | bought its maximum (cap was the constraint) |
| LS_5Y7Y | 2026-08-25 | $8.4bn | $4.0bn | 30% | had room and declined offers on price |
| LS_3Y5Y | 2026-08-20 | $10.2bn | $4.0bn | 46% | had room and declined offers on price |
| LS_20Y30Y | 2026-08-18 | $19.9bn | $2.0bn | 100% | bought its maximum (cap was the constraint) |
| LS_10Y20Y | 2026-08-11 | $7.4bn | $2.0bn | 100% | bought its maximum (cap was the constraint) |
| LS_1M2Y | 2026-08-06 | $35.8bn | $4.0bn | 100% | bought its maximum (cap was the constraint) |
| LS_TIPS1Y10Y | 2026-07-22 | $3.2bn | $0.8bn | 54% | had room and declined offers on price |
| LS_2Y3Y | 2026-07-09 | $12.5bn | $4.0bn | 57% | had room and declined offers on price |
| LS_7Y10Y | 2026-06-16 | $5.1bn | $4.0bn | 14% | had room and declined offers on price |
| LS_TIPS10Y30Y | 2026-05-28 | $0.8bn | $0.5bn | 18% | had room and declined offers on price |
DGS2 (2-year Treasury) minus DFF (effective fed funds), in bp — an observable front-end spread, NOT a read of where the policy rate is headed.
DGS2 contains BOTH expected policy and term-premium compensation, so the spread cannot separate 'the market expects cuts' from 'the market demands less compensation'. The gauge withholds the verdict rather than asserting one it cannot support (demoted 2026-08-17; stale beats wrong).
DGS2 − DFF on aligned dates, in bp, with a 20-session delta and a percentile vs own history. No bands are applied.
The spread and its direction are citable as facts; 'cuts priced', 'hikes priced' and 'on-hold' are NOT. Restoring a policy-path label requires a meeting-dated futures input or a defensible front-end term-premium adjustment.
Not applicable while the verdict is withheld. The spread crossing 0, or a sign flip in the 20-session delta, is a change in the observable — read it beside the term-premium block in the 10y decomposition, never as a policy call.
The gap between the fundamentals inflation read (CPI/PCE/wages — price-independent) and the regime nowcast's inflation axis (a market-price trend vote), on the same signed −1..+1 scale.
Today's tape can vote disinflation (breakevens contested/rolling over) while the actual prints run hot at a several-percent 3m SAAR — that gap is otherwise invisible. Mirrors growth_divergence for the inflation axis.
divergence = fundamentals inflation_norm − market regime inflation_norm; bands on the absolute gap (aligned/mild/wide) — same grammar and starting (PENDING-DISTRIBUTION, placeholder) bands as growth_divergence.
A wide positive gap = the real prints are running hotter than what the tape's trend vote prices; wide negative = the market is pricing more inflation than the data currently shows.
The gap narrowing back inside 'aligned', or the market axis catching up (a breakeven repricing) to close the divergence from its side.
For each of CPI headline/core, core PCE, payrolls, and retail sales: the standardized surprise (actual vs owner-pasted consensus, in σ when available) plus the release-day close-to-close reaction across DGS2, DFII10, T10YIE, DTWEXBGS, SP500, and GC_F (gold).
'Hot print' becomes a number and 'how did the tape take it' becomes a recorded fact — without building tick-level reaction-window plumbing, which the design explicitly discards (§0.3 store-daily-raw).
TWO decoupled halves. The REACTION is FREE: it needs only the release DATE (FRED's release calendar, collected to a cache) and the already-collected daily closes, so it lights up with no paste. The SURPRISE needs a surveyed consensus, which has NO free primary feed (FMP's economic calendar is paywalled; consensus is a commercial survey), so consensus stays an owner paste (data/manual/consensus.yaml, keyed by release_date). surprise = (actual − consensus)/σ when a σ is pasted (scaled=true); else the raw diff, UNSCALED and labeled — never silently σ=1. The release date drives the reaction; the actual is read from the latest data month before that date (June CPI prints in July — the two are a month apart).
Every recent release shows its reaction even with no consensus pasted — that alone is information (a print that DOESN'T move the tape says something). Where consensus is pasted, read the surprise sign against the basket: a hot print with DGS2 up and gold down is the textbook reaction. A null surprise means no consensus was pasted for that release, never a fabricated expectation.
| release | date | actual | consensus | surprise | reaction |
| CPI headline MoM % | 2026-08-12 | 0.07 | — | — | DGS2 -0.050 · DFII10 -0.030 · T10YIE -0.020 · DTWEXBGS +0.067 · SP500 +50.490 · GC_F -45.300 |
| CPI headline MoM % | 2026-07-14 | -0.42 | — | — | DGS2 -0.050 · DFII10 -0.010 · T10YIE -0.020 · DTWEXBGS -0.164 · SP500 +28.810 · GC_F -17.100 |
| CPI headline MoM % | 2026-06-10 | 0.47 | — | — | DGS2 -0.080 · DFII10 -0.050 · T10YIE -0.050 · DTWEXBGS +0.204 · SP500 +127.310 · GC_F -17.900 |
| CPI headline MoM % | 2026-05-12 | 0.64 | — | — | DGS2 -0.020 · DFII10 +0.000 · T10YIE +0.000 · DTWEXBGS -0.050 · SP500 +43.290 · GC_F +20.100 |
| CPI headline MoM % | 2026-04-10 | 0.86 | — | — | DGS2 -0.030 · DFII10 -0.030 · T10YIE +0.020 · DTWEXBGS +0.136 · SP500 +69.350 · GC_F -19.500 |
| CPI headline MoM % | 2026-03-11 | 0.27 | — | — | DGS2 +0.120 · DFII10 +0.040 · T10YIE +0.020 · DTWEXBGS +0.534 · SP500 -103.180 · GC_F -51.600 |
| CPI headline MoM % | 2026-02-13 | 0.17 | — | — | DGS2 +0.030 · DFII10 +0.020 · T10YIE -0.010 · DTWEXBGS +0.212 · SP500 +7.050 · GC_F -139.100 |
| CPI headline MoM % | 2026-01-13 | 0.3 | — | — | DGS2 -0.020 · DFII10 -0.020 · T10YIE -0.010 · DTWEXBGS -0.186 · SP500 -37.140 · GC_F +37.100 |
| CPI core MoM % | 2026-08-12 | 0.21 | — | — | DGS2 -0.050 · DFII10 -0.030 · T10YIE -0.020 · DTWEXBGS +0.067 · SP500 +50.490 · GC_F -45.300 |
| CPI core MoM % | 2026-07-14 | -0.02 | — | — | DGS2 -0.050 · DFII10 -0.010 · T10YIE -0.020 · DTWEXBGS -0.164 · SP500 +28.810 · GC_F -17.100 |
| CPI core MoM % | 2026-06-10 | 0.21 | — | — | DGS2 -0.080 · DFII10 -0.050 · T10YIE -0.050 · DTWEXBGS +0.204 · SP500 +127.310 · GC_F -17.900 |
| CPI core MoM % | 2026-05-12 | 0.38 | — | — | DGS2 -0.020 · DFII10 +0.000 · T10YIE +0.000 · DTWEXBGS -0.050 · SP500 +43.290 · GC_F +20.100 |
| CPI core MoM % | 2026-04-10 | 0.2 | — | — | DGS2 -0.030 · DFII10 -0.030 · T10YIE +0.020 · DTWEXBGS +0.136 · SP500 +69.350 · GC_F -19.500 |
| CPI core MoM % | 2026-03-11 | 0.22 | — | — | DGS2 +0.120 · DFII10 +0.040 · T10YIE +0.020 · DTWEXBGS +0.534 · SP500 -103.180 · GC_F -51.600 |
| CPI core MoM % | 2026-02-13 | 0.29 | — | — | DGS2 +0.030 · DFII10 +0.020 · T10YIE -0.010 · DTWEXBGS +0.212 · SP500 +7.050 · GC_F -139.100 |
| CPI core MoM % | 2026-01-13 | 0.23 | — | — | DGS2 -0.020 · DFII10 -0.020 · T10YIE -0.010 · DTWEXBGS -0.186 · SP500 -37.140 · GC_F +37.100 |
| nonfarm payrolls, thousands added | 2026-09-04 | 162 | — | — | — |
| nonfarm payrolls, thousands added | 2026-08-07 | 21 | — | — | DGS2 +0.060 · DFII10 +0.030 · T10YIE +0.040 · DTWEXBGS +0.054 · SP500 -4.530 · GC_F +21.100 |
| nonfarm payrolls, thousands added | 2026-07-02 | 31 | — | — | DGS2 -0.010 · DFII10 -0.020 · T10YIE +0.010 · DTWEXBGS +0.145 · SP500 +54.190 · GC_F +42.400 |
| nonfarm payrolls, thousands added | 2026-06-05 | 63 | — | — | DGS2 -0.020 · DFII10 +0.020 · T10YIE -0.010 · DTWEXBGS -0.049 · SP500 +21.990 · GC_F -1.200 |
| nonfarm payrolls, thousands added | 2026-05-08 | 148 | — | — | DGS2 +0.050 · DFII10 +0.020 · T10YIE +0.020 · DTWEXBGS +0.017 · SP500 +13.910 · GC_F -1.700 |
| nonfarm payrolls, thousands added | 2026-04-03 | 214 | — | — | DGS2 +0.000 · DFII10 -0.010 · T10YIE +0.000 · DTWEXBGS -0.226 · SP500 +29.140 · GC_F +5.300 |
| nonfarm payrolls, thousands added | 2026-03-06 | -156 | — | — | DGS2 +0.000 · DFII10 -0.020 · T10YIE -0.010 · DTWEXBGS +0.024 · SP500 +55.970 · GC_F -54.600 |
| nonfarm payrolls, thousands added | 2026-02-11 | 160 | — | — | DGS2 -0.050 · DFII10 -0.060 · T10YIE -0.030 · DTWEXBGS +0.077 · SP500 -108.710 · GC_F -147.900 |
| PCE core MoM % | 2026-08-26 | 0.25 | — | — | DGS2 +0.010 · DFII10 +0.000 · T10YIE +0.010 · DTWEXBGS -0.088 · SP500 +55.290 · GC_F +11.500 |
| PCE core MoM % | 2026-07-30 | 0.15 | — | — | DGS2 +0.050 · DFII10 +0.060 · T10YIE +0.010 · DTWEXBGS +0.028 · SP500 +52.090 · GC_F -51.000 |
| PCE core MoM % | 2026-06-25 | 0.36 | — | — | DGS2 -0.020 · DFII10 -0.010 · T10YIE -0.010 · DTWEXBGS -0.169 · SP500 -3.470 · GC_F +48.200 |
| PCE core MoM % | 2026-05-28 | 0.26 | — | — | DGS2 -0.010 · DFII10 +0.010 · T10YIE -0.010 · DTWEXBGS -0.153 · SP500 +16.430 · GC_F +61.200 |
| PCE core MoM % | 2026-04-30 | 0.3 | — | — | DGS2 +0.000 · DFII10 -0.030 · T10YIE +0.020 · DTWEXBGS -0.278 · SP500 +21.110 · GC_F +15.200 |
| PCE core MoM % | 2026-04-09 | 0.3 | — | — | DGS2 +0.030 · DFII10 +0.000 · T10YIE +0.020 · DTWEXBGS -0.045 · SP500 -7.770 · GC_F -30.300 |
| PCE core MoM % | 2026-03-13 | 0.39 | — | — | DGS2 -0.050 · DFII10 -0.050 · T10YIE +0.000 · DTWEXBGS -0.455 · SP500 +67.190 · GC_F -58.500 |
| PCE core MoM % | 2026-02-20 | 0.45 | — | — | DGS2 -0.050 · DFII10 -0.030 · T10YIE -0.020 · DTWEXBGS -0.052 · SP500 -71.760 · GC_F +145.400 |
| retail sales MoM % | 2026-08-14 | -0.58 | — | — | DGS2 +0.020 · DFII10 +0.030 · T10YIE +0.010 · DTWEXBGS -0.089 · SP500 -40.700 · GC_F +37.400 |
| retail sales MoM % | 2026-07-16 | 0.24 | — | — | DGS2 +0.020 · DFII10 -0.040 · T10YIE +0.020 · DTWEXBGS +0.201 · SP500 -76.080 · GC_F +27.100 |
| retail sales MoM % | 2026-06-17 | 0.94 | — | — | DGS2 -0.010 · DFII10 -0.020 · T10YIE -0.010 · DTWEXBGS +1.009 · SP500 +80.480 · GC_F -134.800 |
| retail sales MoM % | 2026-05-14 | 0.67 | — | — | DGS2 +0.090 · DFII10 +0.100 · T10YIE +0.020 · DTWEXBGS +0.613 · SP500 -92.740 · GC_F -122.300 |
| retail sales MoM % | 2026-04-21 | 1.72 | — | — | DGS2 +0.010 · DFII10 +0.000 · T10YIE +0.000 · DTWEXBGS +0.167 · SP500 +73.890 · GC_F +34.100 |
| retail sales MoM % | 2026-04-01 | 1.72 | — | — | DGS2 -0.020 · DFII10 -0.050 · T10YIE +0.030 · DTWEXBGS +0.383 · SP500 +7.370 · GC_F -131.700 |
| retail sales MoM % | 2026-03-06 | 0.92 | — | — | DGS2 +0.000 · DFII10 -0.020 · T10YIE -0.010 · DTWEXBGS +0.024 · SP500 +55.970 · GC_F -54.600 |
| retail sales MoM % | 2026-02-10 | -0.03 | — | — | DGS2 +0.070 · DFII10 +0.020 · T10YIE +0.000 · DTWEXBGS -0.061 · SP500 -0.340 · GC_F +67.800 |
Spec-panel series (§3.2) not yet collected, by name.
Absence of evidence must be displayed as absence — a gauge silently missing reads as 'all quiet', which is exactly how boards mislead (rule 2).
config/panel_manifest.yaml (the spec list) diffed against series_meta (what actually collects).
Each row is a known blind spot; weigh reads accordingly.
SF completions, US (SAAR) — SF new supply arriving.
housing completions, US (SAAR) — new supply arriving.
S&P Cotality Case-Shiller US national HPI (NSA) — corroborating repeat-sales; YoY is the clean read.
delinquency rate on SF residential mortgages (SA) — the only free national distress leg (delinquency-only; cannot evidence forced sale).
new one-family homes for sale, US (SA) — new-home inventory.
SF housing starts, US (SAAR).
FHFA purchase-only HPI, US (SA) — primary repeat-sales price-momentum workhorse.
new one-family houses sold, US (SAAR) — new-home demand (registered ahead of the demand leg).
mortgage debt service payments as % of disposable income — the direct affordability/burden tell.
real median household income, US (ANNUAL: one observation per year, released ~Sep for the prior year) - income leg for payment-to-income.
30y fixed mortgage rate (Freddie PMMS) — financing cost.
monthly supply of new houses, US (SA) — the new-home oversupply tell; level percentile is meaningful (mean-reverting).
median sales price of houses sold, US — mix-SENSITIVE, context only, never the momentum signal (pack §4.4).
SF building permits, US (SAAR) — leading SF supply.
SF units under construction, US (SA) — SF pipeline in flight.
housing units under construction, US (SA) — pipeline in flight.
FHFA all-transactions HPI, US (NSA) — deep quarterly price context (1975→).