{
  "service": "cycle-timing",
  "title": "US AI Cycle Monitor",
  "generatedAt": "2026-07-09T13:07:10.399Z",
  "lastUpdated": "2026-07-08T23:20:06.050Z",
  "snapshotDate": "2026-07-08",
  "provenance": "live",
  "rallyStart": "2022-11-30",
  "regime": {
    "headline": "Distribution / stress-test: composite fragility 84.2/100 (red), easing over the past month.",
    "compositeScore": 84.2,
    "band": "RED",
    "stage": 3,
    "stageLabel": "Stage 3 — Distribution / stress-test",
    "stageDwellSessions": 36,
    "stageRationale": "Tape distribution elevated (tape 72) with composite 84 — selling pressure into a still-standing trend.",
    "confidence": "high",
    "summary": [
      "The composite fragility score stands at 84.2 — distribution-risk territory (-5.1 points over 20 sessions). That includes a +12.0 synchronization add-on — multiple warnings are lining up at once, which is the pattern that matters more than any single signal. The cycle read is Stage 3 — Distribution / stress-test (held 36 sessions): Tape distribution elevated (tape 72) with composite 84 — selling pressure into a still-standing trend. The equal-weight AI basket sits 8.9% below its one-year high.",
      "What is driving it: issuance activity is heavy: 59 weighted registration/offering filings across the universe in the past quarter (score 100). Also, leverage and speculation are elevated: FINRA margin debt is up 54% year-over-year (monthly, ~4-week publication lag); universe dollar-volume runs 62% above its one-year norm (score 96). Also, trend extension is stretched — the AI basket trades 32.9% above its 200-day average, with a 103% twelve-month return (score 92).",
      "What is not confirming: rates and credit are not the problem — spreads and yields sit inside normal ranges (40)."
    ],
    "watchlist": [
      "A retreat below 65 on the composite for five sessions would close the current episode.",
      "Watch the next reporting season's reaction breadth — persistent selling of results is the missing confirmation for a rollover call.",
      "Credit is the quiet tell: high-yield spreads near one-year tights leave no cushion — sustained widening would escalate the read quickly."
    ]
  },
  "composite": {
    "score": 84.2,
    "base": 72.2,
    "syncKicker": 12,
    "band": "RED",
    "thresholds": "green <35 · amber 35–65 · red >65",
    "availablePillars": 6,
    "weights": {
      "extension": 10,
      "tape": 25,
      "leverage": 15,
      "rates": 20,
      "reaction": 20,
      "supply": 10
    },
    "formula": "Availability-reweighted weighted mean of the six pillar scores (weights below), plus a synchronization add-on: +8 if ≥3 pillars score ≥65, +4 if ≥4 pillars score ≥50, capped at 100. Bands: green <35 · amber 35–65 · red >65."
  },
  "pillars": [
    {
      "id": "extension",
      "label": "Extension",
      "score": 92.1,
      "band": "RED",
      "weightPct": 10,
      "available": true,
      "stale": false,
      "source": "Yahoo Finance — daily adjusted prices (equal-weight AI basket)",
      "measures": "How stretched the AI trade is versus its own trend.",
      "dateUsed": "2026-07-08",
      "indicators": [
        {
          "id": "dist200",
          "label": "AI basket vs 200-day average",
          "rawValue": 0.32935859669565537,
          "rawFormatted": "32.9%",
          "unit": "pct",
          "scorePercentile": 90,
          "available": true,
          "formula": "basket ÷ 200-day average − 1, then percentile-ranked against its own history up to that date"
        },
        {
          "id": "ret12m",
          "label": "12-month basket return",
          "rawValue": 1.0282510767694086,
          "rawFormatted": "102.8%",
          "unit": "pct",
          "scorePercentile": 93,
          "available": true,
          "formula": "252-session total return of the equal-weight basket, percentile-ranked"
        },
        {
          "id": "slope63",
          "label": "3-month trend slope",
          "rawValue": 0.0054216769233529855,
          "rawFormatted": "0.0054",
          "unit": "slope",
          "scorePercentile": 95,
          "available": true,
          "formula": "OLS slope of the basket over 63 sessions ÷ mean level, percentile-ranked"
        }
      ],
      "caveats": [
        "Equal-weighted basket of the designated universe; SMH/SOXX act as cap-weighted proxies."
      ]
    },
    {
      "id": "tape",
      "label": "Tape: distribution & breadth",
      "score": 72,
      "band": "RED",
      "weightPct": 25,
      "available": true,
      "stale": false,
      "source": "Yahoo Finance — daily prices & volume (SOXX, QQQ, SMH, universe members)",
      "measures": "Selling pressure and breadth in the tape. This is a price/volume proxy — it does NOT observe who is selling (no institutional-flow feed connected).",
      "dateUsed": "2026-07-08",
      "indicators": [
        {
          "id": "distdays",
          "label": "Distribution days (SOXX+QQQ, 25 sessions)",
          "rawValue": 15,
          "rawFormatted": "15",
          "unit": "count",
          "scorePercentile": 84,
          "available": true,
          "formula": "count of sessions in the last 25 where SOXX or QQQ fell >0.2% on higher volume than the prior day (split-day-guarded), percentile-ranked"
        },
        {
          "id": "breadthdiv",
          "label": "Near-high breadth divergence",
          "rawValue": 0,
          "rawFormatted": "0.00",
          "unit": "ratio",
          "scorePercentile": 47,
          "available": true,
          "formula": "when the basket is within 2% of its 252-day high: (0.7 − share of members above their 50-day average) ÷ 0.7, else 0; percentile-ranked",
          "note": "0 = none, 1 = severe"
        },
        {
          "id": "narrowing",
          "label": "Equal-weight AI vs SMH, 3-month slope",
          "rawValue": -0.00046784567849374225,
          "rawFormatted": "-0.0005",
          "unit": "slope",
          "scorePercentile": 81,
          "available": true,
          "formula": "OLS slope of (equal-weight AI ÷ SMH) over 63 sessions, inverted so a falling ratio (narrowing leadership) = more fragile"
        },
        {
          "id": "above200",
          "label": "% of universe above 200-day average",
          "rawValue": 0.675,
          "rawFormatted": "67.5%",
          "unit": "pct",
          "scorePercentile": 70,
          "available": true,
          "formula": "share of universe members above their own 200-day average, inverted (weak breadth = more fragile)"
        }
      ],
      "caveats": [
        "Measures selling pressure in the tape; does not observe who is selling.",
        "Institutional flow (13F aggregation / prime-broker / fund flows): no feed connected."
      ]
    },
    {
      "id": "leverage",
      "label": "Leverage & speculation",
      "score": 95.5,
      "band": "RED",
      "weightPct": 15,
      "available": true,
      "stale": false,
      "source": "FINRA margin statistics (monthly, ~4-week lag) + Yahoo Finance dollar-volume",
      "measures": "Broad-market leverage growth and universe turnover intensity.",
      "dateUsed": "2026-05-01",
      "indicators": [
        {
          "id": "marginyoy",
          "label": "FINRA margin debt, YoY growth",
          "rawValue": 0.5370450399583044,
          "rawFormatted": "53.7%",
          "unit": "pct",
          "scorePercentile": null,
          "available": false,
          "formula": "FINRA debit balances: latest month ÷ same month one year earlier − 1, percentile-ranked",
          "note": "monthly, ~4-week publication lag"
        },
        {
          "id": "margin6m",
          "label": "FINRA margin debt, 6-month growth",
          "rawValue": 0.16571894910818474,
          "rawFormatted": "16.6%",
          "unit": "pct",
          "scorePercentile": null,
          "available": false,
          "formula": "FINRA debit balances: latest month ÷ six months earlier − 1, percentile-ranked"
        },
        {
          "id": "turnover",
          "label": "Universe dollar-volume vs 1-year norm",
          "rawValue": 0.6246170087263492,
          "rawFormatted": "62.5%",
          "unit": "pct",
          "scorePercentile": 96,
          "available": true,
          "formula": "21-session average universe dollar-volume ÷ 252-session average − 1, percentile-ranked"
        }
      ],
      "caveats": [
        "Margin debt is market-wide, monthly, published ~4 weeks after month end — not AI-specific.",
        "Options positioning (put/call, 0DTE): no reliable free feed — not scored."
      ]
    },
    {
      "id": "rates",
      "label": "Rates & credit",
      "score": 39.8,
      "band": "AMBER",
      "weightPct": 20,
      "available": true,
      "stale": false,
      "source": "FRED (DGS10, DFII10, ICE BofA HY & IG OAS) + Yahoo ^TNX for the live 10-year yield",
      "measures": "Discount-rate and funding-cost pressure on a long-duration, capital-intensive trade.",
      "dateUsed": "2026-07-08",
      "indicators": [
        {
          "id": "d10y63",
          "label": "10y yield, 3-month change (pp)",
          "rawValue": -3.88,
          "rawFormatted": "-388 bp",
          "unit": "bp",
          "scorePercentile": 0,
          "available": true,
          "formula": "10-year Treasury yield (DGS10) minus its level 63 sessions ago"
        },
        {
          "id": "dreal63",
          "label": "10y real yield, 3-month change (pp)",
          "rawValue": 0.26000000000000023,
          "rawFormatted": "+26 bp",
          "unit": "bp",
          "scorePercentile": 79,
          "available": true,
          "formula": "10-year real yield (DFII10) minus its level 63 sessions ago"
        },
        {
          "id": "hyw21",
          "label": "HY spread, 1-month change (pp)",
          "rawValue": -0.07000000000000028,
          "rawFormatted": "-7 bp",
          "unit": "bp",
          "scorePercentile": 50,
          "available": true,
          "formula": "ICE BofA US High-Yield OAS minus its level 21 sessions ago"
        },
        {
          "id": "hyrange",
          "label": "HY spread within 1-year range",
          "rawValue": 0.04819277108433739,
          "rawFormatted": "0.05",
          "unit": "ratio",
          "scorePercentile": 18,
          "available": true,
          "formula": "(HY OAS − trailing-1-year min) ÷ (1-year max − min); 0 = tightest of the year, 1 = widest",
          "note": "0 = tightest, 1 = widest"
        },
        {
          "id": "igw21",
          "label": "IG spread, 1-month change (pp)",
          "rawValue": 0.020000000000000018,
          "rawFormatted": "+2 bp",
          "unit": "bp",
          "scorePercentile": 74,
          "available": true,
          "formula": "ICE BofA US Investment-Grade OAS minus its level 21 sessions ago"
        }
      ],
      "caveats": [
        "FRED daily series applied with a T+1 knowability rule."
      ]
    },
    {
      "id": "reaction",
      "label": "Earnings reaction",
      "score": 63.7,
      "band": "AMBER",
      "weightPct": 20,
      "available": true,
      "stale": false,
      "source": "SEC EDGAR (8-K item 2.02 results filings) + Yahoo Finance next-session returns",
      "measures": "Whether the market is selling good results — a 'good news sold' gauge. NOT consensus estimate revisions (no revisions feed connected).",
      "dateUsed": "2026-06-24",
      "indicators": [
        {
          "id": "sharesold",
          "label": "Share of results sold next session (63-session window)",
          "rawValue": 0.5675675675675675,
          "rawFormatted": "56.8%",
          "unit": "pct",
          "scorePercentile": 77,
          "available": true,
          "formula": "share of universe 8-K item 2.02 results in the last 63 sessions with a negative next-session return vs their layer benchmark (semis→SMH, software→IGV, else QQQ)"
        },
        {
          "id": "meanreact",
          "label": "Mean abnormal reaction to results",
          "rawValue": 0.01067300603654912,
          "rawFormatted": "1.1%",
          "unit": "pct",
          "scorePercentile": 47,
          "available": true,
          "formula": "mean next-session abnormal return across those results, inverted (more negative = more fragile)"
        }
      ],
      "caveats": [
        "A reaction gauge, not consensus revisions — noisy by construction; reads best over full reporting seasons.",
        "Excluded (6-K reporters, timing ambiguous): ARM, TSM, ASML, IREN, NBIS.",
        "Consensus revision momentum: data unavailable — no estimates feed connected."
      ]
    },
    {
      "id": "supply",
      "label": "Supply & funding",
      "score": 99.6,
      "band": "RED",
      "weightPct": 10,
      "available": true,
      "stale": false,
      "source": "SEC EDGAR (S-1 / S-3 / 424B* / FWP issuance filings)",
      "measures": "Equity/credit issuance intensity within the universe. Count-based, not dollar-based.",
      "dateUsed": "2026-06-24",
      "indicators": [
        {
          "id": "issuance90",
          "label": "Issuance filings, rolling quarter (weighted count)",
          "rawValue": 59,
          "rawFormatted": "59",
          "unit": "count",
          "scorePercentile": 100,
          "available": true,
          "formula": "weighted count of S-1/S-3/424B/FWP filings in the last ~63 sessions (neocloud filings ×2), percentile-ranked",
          "note": "neocloud filings ×2"
        }
      ],
      "caveats": [
        "Counts, not dollars — a single mega-deal can matter more than many small filings.",
        "Universe-only: does not capture market-wide AI issuance.",
        "Deal sizes/pricing: data unavailable — no deals feed connected (deals.csv adapter ready)."
      ]
    }
  ],
  "basketLevels": [
    {
      "key": "layer:neoclouds",
      "label": "Neoclouds (EW)",
      "level": 5251.86,
      "base": "2022-11-30"
    },
    {
      "key": "layer:infra",
      "label": "AI infrastructure (EW)",
      "level": 1203.9,
      "base": "2022-11-30"
    },
    {
      "key": "ai-all",
      "label": "AI basket (equal-weight, all layers)",
      "level": 825.32,
      "base": "2022-11-30"
    },
    {
      "key": "layer:semis",
      "label": "Semis & hardware (EW)",
      "level": 694.46,
      "base": "2022-11-30"
    },
    {
      "key": "layer:power",
      "label": "Power & grid (EW)",
      "level": 608.77,
      "base": "2022-11-30"
    },
    {
      "key": "etf:SMH",
      "label": "SMH",
      "level": 533.89,
      "base": "2022-11-30"
    },
    {
      "key": "etf:SOXX",
      "label": "SOXX",
      "level": 446.24,
      "base": "2022-11-30"
    },
    {
      "key": "layer:software",
      "label": "AI software (EW)",
      "level": 336.98,
      "base": "2022-11-30"
    },
    {
      "key": "layer:hyperscalers",
      "label": "Hyperscalers (EW)",
      "level": 293.1,
      "base": "2022-11-30"
    },
    {
      "key": "etf:AIQ",
      "label": "AIQ",
      "level": 290.14,
      "base": "2022-11-30"
    },
    {
      "key": "etf:QQQ",
      "label": "QQQ",
      "level": 248.06,
      "base": "2022-11-30"
    },
    {
      "key": "etf:SPY",
      "label": "SPY",
      "level": 192.1,
      "base": "2022-11-30"
    },
    {
      "key": "etf:IGV",
      "label": "IGV",
      "level": 170.11,
      "base": "2022-11-30"
    },
    {
      "key": "etf:BOTZ",
      "label": "BOTZ",
      "level": 169.74,
      "base": "2022-11-30"
    },
    {
      "key": "etf:IWM",
      "label": "IWM",
      "level": 164.07,
      "base": "2022-11-30"
    }
  ],
  "dataAvailability": [
    {
      "pillar": "Extension",
      "status": "live"
    },
    {
      "pillar": "Tape: distribution & breadth",
      "status": "live"
    },
    {
      "pillar": "Leverage & speculation",
      "status": "live"
    },
    {
      "pillar": "Rates & credit",
      "status": "live"
    },
    {
      "pillar": "Earnings reaction",
      "status": "live"
    },
    {
      "pillar": "Supply & funding",
      "status": "live"
    }
  ],
  "warnings": [
    "Consensus revisions: no estimates feed connected — the earnings pillar reads announcement reactions only.",
    "Institutional flow: not observed — the tape pillar infers selling pressure from price/volume only."
  ],
  "episodes": {
    "total": 22,
    "active": {
      "start": "2026-05-05",
      "peakScore": 92.6,
      "peakDate": "2026-06-11",
      "pillarsFlashed": [
        "Extension",
        "Leverage & speculation",
        "Supply & funding",
        "Earnings reaction",
        "Rates & credit",
        "Tape: distribution & breadth"
      ],
      "drawdownAiBasket": -0.124
    },
    "recent": [
      {
        "start": "2026-05-05",
        "end": null,
        "peakScore": 92.6,
        "pillarsFlashed": [
          "Extension",
          "Leverage & speculation",
          "Supply & funding",
          "Earnings reaction",
          "Rates & credit",
          "Tape: distribution & breadth"
        ],
        "resolution": [
          "ongoing"
        ],
        "drawdownAiBasket": -0.124,
        "recoveryDate": null
      },
      {
        "start": "2026-01-02",
        "end": "2026-04-02",
        "peakScore": 80.8,
        "pillarsFlashed": [
          "Extension",
          "Tape: distribution & breadth",
          "Supply & funding",
          "Leverage & speculation",
          "Rates & credit"
        ],
        "resolution": [
          "breadth repaired",
          "reaction recovered"
        ],
        "drawdownAiBasket": -0.127,
        "recoveryDate": "2026-04-02"
      },
      {
        "start": "2025-10-31",
        "end": "2025-12-23",
        "peakScore": 79.5,
        "pillarsFlashed": [
          "Extension",
          "Leverage & speculation",
          "Supply & funding",
          "Tape: distribution & breadth"
        ],
        "resolution": [
          "rates relief",
          "reaction recovered"
        ],
        "drawdownAiBasket": -0.154,
        "recoveryDate": "2026-01-06"
      },
      {
        "start": "2025-06-03",
        "end": "2025-08-26",
        "peakScore": 76.6,
        "pillarsFlashed": [
          "Extension",
          "Earnings reaction",
          "Supply & funding"
        ],
        "resolution": [
          "rates relief",
          "breadth repaired",
          "reaction recovered"
        ],
        "drawdownAiBasket": -0.054,
        "recoveryDate": "2025-08-26"
      },
      {
        "start": "2025-02-24",
        "end": "2025-05-02",
        "peakScore": 83.1,
        "pillarsFlashed": [
          "Leverage & speculation",
          "Earnings reaction",
          "Supply & funding",
          "Tape: distribution & breadth",
          "Rates & credit"
        ],
        "resolution": [
          "rates relief",
          "breadth repaired"
        ],
        "drawdownAiBasket": -0.271,
        "recoveryDate": "2025-05-12"
      },
      {
        "start": "2025-01-17",
        "end": "2025-01-21",
        "peakScore": 71,
        "pillarsFlashed": [
          "Extension",
          "Rates & credit",
          "Earnings reaction",
          "Supply & funding"
        ],
        "resolution": [
          "rates relief",
          "breadth repaired"
        ],
        "drawdownAiBasket": -0.237,
        "recoveryDate": "2025-01-21"
      }
    ]
  },
  "dataEndpoints": {
    "auditJson": "/api/ai-audit",
    "latest": "/api/latest",
    "history": "/api/history",
    "episodes": "/api/episodes",
    "benchmarks": "/api/benchmarks",
    "reports": "/api/reports",
    "health": "/api/health",
    "snapshotByDate": "/api/snapshot/{YYYY-MM-DD}"
  },
  "disclaimer": "Point-in-time honest: uses only data knowable by the snapshot date's US close; daily snapshots are computed once and frozen. Free public data only (Yahoo, FRED, SEC EDGAR, FINRA); consensus revisions, institutional flow and deal-size feeds are shown as unavailable, never estimated. Not investment advice."
}