AI INFRASTRUCTURE BUBBLE MONITOR

CAPEX  ·  MONETIZATION  ·  DEPRECIATION  ·  SUPPLY CHAIN
LIVE SEC EDGAR DATA — XBRL FILINGS LOADED —

01HYPERSCALER AI CAPEX

Quarterly & trailing-12-month capital expenditure, Microsoft / Alphabet / Amazon / Meta.

Combined quarterly capex ($B)

Capex by company ($B, quarterly)

Latest quarter detail

Fields: capex_quarterly, capex_ttm, capex_yoy_growth. Source: company 10-Q / 10-K cash flow statements.

02CAPEX VS CASH GENERATION

Operating cash flow, free cash flow, and the capex/OCF ratio — flags where capex is outrunning cash generation.

Capex growth vs. FCF growth (YoY %)

Capex as % of operating cash flow

Cash generation detail — latest quarter

Fields: operating_cash_flow, capex, free_cash_flow, fcf_margin, capex_pct_ocf. Source: 10-Q cash flow statements (calculated: FCF = OCF − Capex).

03AI MONETIZATION

Disclosed AI-attributable revenue signals. Reported vs. analyst-estimated figures are labeled explicitly.
Most hyperscalers do not separately break out "AI revenue" in filings — figures below are either a disclosed growth-rate proxy (e.g. Azure AI contribution to Azure growth) or third-party/analyst estimates, labeled accordingly. Cells with no reliable source read "Not disclosed."

AI revenue growth (YoY %, where disclosed)

Combined AI-linked capex ($B, TTM)

Est. AI revenue ÷ AI infra capex (TTM)

04NVIDIA

Revenue, Data Center segment, margins, inventory and receivables — the clearest read on hyperscaler demand pass-through.

Revenue vs. Data Center revenue ($B)

Gross & operating margin (%)

Inventory & receivables growth vs. revenue growth (YoY %)

Signal detail

Fields: revenue, datacenter_revenue, gross_margin, operating_margin, inventory, receivables, yoy_growth. Source: NVDA 10-Q / 10-K, earnings press release segment tables.

05MEMORY / HBM

Micron as primary disclosed source; SK Hynix / Samsung shown where reliable public data exists.

Micron revenue & HBM/data-center revenue ($B)

Micron gross margin & inventory days

Fields: revenue, hbm_revenue, gross_margin, inventory, dram_price_index. Source: Micron 10-Q/10-K; SK Hynix & Samsung figures limited to disclosed segment data where available, else "Not disclosed."

06DEPRECIATION WALL

The growing depreciation burden from recent AI infrastructure builds — flagged when D&A outgrows revenue/operating income.

Combined capex vs. combined depreciation ($B)

D&A growth vs. revenue growth (YoY %)

Fields: ppe_gross, capex, depreciation_amortization. Source: 10-K PP&E footnotes and cash flow statements (calculated: capex − D&A = net investment gap).

07ELECTRICITY / DATA-CENTER DEMAND

Announced vs. actual operating capacity — the physical-world constraint on AI infrastructure buildout.

US data-center electricity demand (TWh/yr)

Announced vs. actual operating capacity (GW)

Fields: electricity_actual_twh, electricity_projected_twh, announced_capacity_gw, operating_capacity_gw, grid_requests_gw, cancelled_projects_gw. Source: EIA, DOE LBNL data-center reports, grid operator interconnection queues.

08S&P 500 CONCENTRATION

Combined index weight of the core AI-capex complex — the transmission channel to the broader market.

Combined weight over time (%)

Current weight by company (%)

Fields: index_weight_pct per company. Source: S&P index committee published weights / index provider fact sheets.

09AI SUPPLY CHAIN MAP

How a hyperscaler capex slowdown would propagate backward through the chain.

10WARNING SIGNALS

Composite read across every tracked indicator, plus the core spending-vs-return relationship.

DATASCHEMA, SOURCES & LIVE-DATA CONFIGURATION

1. Standardized record schema

Every metric in this dashboard — regardless of ultimate source (CSV, JSON, API, SEC filing, FRED) — is expected in this flat shape. The rendering layer reads only this shape, so replacing DATA_SOURCE below is the only change required to go live.

{
  "company":              "MSFT",              // ticker or entity id
  "ticker":                "MSFT",
  "cik":                   "0000789019",
  "quarter":               "Q3",
  "fiscal_year":           2025,
  "period_start":          "2025-01-01",        // null for instant (balance-sheet) facts
  "period_end":            "2025-03-31",
  "metric":                "capex_quarterly",   // see field list below
  "value":                 19500000000,         // null when not_disclosed
  "unit":                  "USD",
  "source":                "SEC EDGAR XBRL Company Facts",
  "api_source_url":        "https://data.sec.gov/api/xbrl/companyfacts/CIK0000789019.json",
  "filing_source_url":     "https://www.sec.gov/Archives/edgar/data/789019/000...-index.htm",
  "accession_number":      "0000789019-25-000045",
  "form":                  "10-Q",
  "xbrl_concept":          "PaymentsToAcquirePropertyPlantAndEquipment",
  "reported_or_estimated": "reported",          // reported | calculated | not_disclosed
  "last_updated":          "2025-10-24"
}

A record is reported when it's a single disclosed XBRL fact, calculated when this pipeline derived it (a standalone quarter from cumulative facts, or a ratio like FCF margin), or not_disclosed when SEC does not standardize the metric at all (value is always null in that case — never estimated).

2. Required external data fields

3. Recommended data source per field group

4. Bubble Risk Index — calculation transparency

The index is a weighted composite of five sub-scores, each normalized 0–100 from underlying growth-rate gaps (never fabricated — see computeBubbleIndex() in the page source). Weights are configurable in CONFIG.riskWeights.

5. Instructions — replacing demonstration data with live data

1
Keep the schema. Produce a JSON array of records matching the schema in step 1 — one record per company/quarter/metric.
2
Point CONFIG at it. In the page source, set CONFIG.dataSource.mode to "json" or "api" and set CONFIG.dataSource.url (or path for a local file).
3
No other code changes needed. loadData() fetches the records, reshapeData() pivots them into the per-section structures the charts already read, and every chart, table, and the risk index recompute automatically.
4
Missing values. Omit a record rather than inventing one — the renderer displays "Not disclosed" for any metric it can't find for a given period.
5
Provenance stays visible. Keep source, source_url, and reported_or_estimated populated on every record — these render as the footnotes and badges throughout the dashboard.

6. Live-data connection config (edit in page source, top of <script>)

const CONFIG = {
  dataSource: {
    mode: "demo",        // "demo" | "json" | "api"
    path: "./data/ai_bubble_dataset.json",   // used when mode === "json"
    url:  "https://your-api.example.com/v1/ai-bubble-metrics", // used when mode === "api"
    apiKeyHeader: null   // e.g. "X-API-Key" — set if your API requires auth
  },
  riskWeights: {
    capexAcceleration:   0.20,
    capexFcfGap:         0.25,
    depreciationGap:     0.20,
    nvidiaBalanceSheet:  0.20,
    indexConcentration:  0.15
  }
};