Published 07:13 AEST · Before US Open · Wednesday, 9 September 2026Pipeline 04:30 AESTVol. I  No. 121
The Grid
Independent Price Reporting for the Compute Market
thegridco.ai
EST. 2026 · SYDNEY
Specification · Class 3 · indicator — a constructed measure that is not a price

GPI · Grid Pressure Index

A 0–100 weighted composite of four contributing factors. Three (GPU rental, memory, incidents) are z-scored against their own 30-day history and mapped so that 50 = the 30-day mean; the fourth (Supply Chain Forward) is a bounded 0–100 mean of three level signals, not a z-score — stated below exactly as implemented. Higher = tightening pressure on the compute buyer; lower = easing. Whole-market read is the band. Known as the Compute Pressure Index (CPI) in v1.0; renamed GPI in Grid Standards v1.1 with no change to the calculation. Internal code retains cpi_daily / calculate_cpi.py.
not a derived_series row · methodology v2.0 · unit index_0_100

· Class and status

Part B class · print status · latest print of record
Class 3 · indicatorPrinting
Class — and why

A composite of normalised factor scores — a measure of pressure, not the price of a deliverable thing. Always an indicator (Part B Class 3); nothing about it changed on 2026-08-14.

Latest print of record · read from storage, not recomputed
StoreLatest printScoreUnit
cpi_daily2026-09-0964.85index_0_100

· Specification

A4 field template · honest current state · n/a fields shown, not hidden
CodeGPIstored in cpi_daily (score, sub_scores, methodology_version)
Accelerator classn/a — composite indicator
Contract basis / term / commitmentn/a — composite indicator
RegionNot regionalised — the factors' own coverage applies (US interconnection queue, TrendForce DRAM spot, global H100 rental panel).
Currency / unitIndex points 0–100, two decimals; 50 = neutral (30-day mean)
Assessment close18:30 UTC — the scheduled daily cycle anchorcomputed once per cycle after the collection run
Submission cut-offn/a — no submitted inputs
Publication timeWith the daily print (masthead: 04:30 AEST) — on the briefing, /instruments, the daily report, /api/print/<date> (permanent) and MCP.
Data hierarchy appliedTier 2 / tier 3 public market information: H100 rental asks (all variants), TrendForce DRAM spot quotes, US interconnection-queue and TSMC/SEC filings, provider status pages. No transactions; judgment: none (arithmetic).

· Contributing factors (methodology v2.0)

inputs of record
Contributing factorWeightMeasurement
GPU Rental Trend30%7-day rolling average of the all-H100-variant daily median rental price (sanity-bounded $0.20–30/hr), z-scored against the daily medians of the trailing 30 days (window includes the day)
Memory Pressure25%7-day rolling average of the daily mean of the DDR5 16Gb and DDR4 16Gb chip spot prices (TrendForce), z-scored against the daily means of the trailing 30 days
Supply Chain Forward30%NOT z-scored. Mean of up to three bounded level signals, each clamped to [0, 100]: 50 + 2 × TSMC latest month-over-month revenue %; US interconnection-queue total GW ÷ 30 × 100; 50 + latest quarter-over-quarter capex growth % (SEC filings, Capex metrics). Missing signals are omitted from the mean; no signal → 50.
Provider Incidents15%Today's severity-weighted incident count (critical ×4, major ×3, minor ×1, maintenance ×0.5; by created_at), z-scored against the daily scores of the days in the trailing 30 days that recorded at least one incident; a window with no incidents at all prints neutral (data gap, not zero)

The GPU Rental factor is intentionally a different series from GAP-H100: it tracks the daily median across all H100 variants (SXM, NVL, PCIe) and is retained unchanged for index-history continuity; GAP-H100 is the SXM class specifically. Do not conflate the index input with the assessed-class series.

· Normalisation and construction rules

the named adjustments, in order
  • z-score for three factors (GPU rental, memory, incidents) — normalised = 50 + z × 16.67, where z = (value − mean₃₀d) / σ₃₀d (population σ over the window's daily values); ±3σ maps to 0–100, clamped to [5, 95]; fewer than two values in window → 50; σ = 0 → 50.
  • Supply Chain Forward is not z-scored — it is the mean of its bounded level signals (see the factor table), clamped to [0, 100], and enters the composite as that value.
  • Composite — GPI = Σ (normalised factor × weight) with weights 0.30 / 0.25 / 0.30 / 0.15, clamped to [0, 100], rounded to two decimals; per-factor contribution = normalised × weight, stored with the print.
  • Bands (permanent names): Abundant 0–24 · Balanced 25–44 · Tight 45–65 · Constrained 66–80 · Critical 81–100. Band for a stored score is derived identically on every surface (getBand) — e.g. 50.0 → tight.

· Minimum observations and withholding

below which the print is flagged · below which it is not published

Per factor: fewer than two observations in the 30-day window → that factor prints neutral (50) rather than being dropped. No whole-index withholding rule exists.

· Disclosures

verbatim from the derived-series registry · the same string every surface carries
No registry disclosure attaches to this code today.

· Revision history

dated changelog for this code · never rewritten
DateVersionChangeReference
2026-05-11v1.0First computed as the Compute Pressure Index (CPI): min/max scaling; factors included OCPI Spot Index (15%) and Social Signal Volume (10%).
2026-06-09v1.1OCPI Spot Index (15%) and Social Signal Volume (10%) removed — sparse / low signal-to-noise; four factors remain.
2026-06-09v1.2Rebalanced toward supply-side leading indicators (GPU Rental + Supply Chain Forward = 60%); incident weight reduced; incidents measured as spike-from-baseline.
2026-06-10v2.0z-score normalisation replacing min/max (planning-012 §2.4; CNN Fear & Greed precedent). Fixes the min/max clustering that pinned Memory Pressure at 0 or 100 when DRAM barely moved.scripts/calculate_cpi.py
2026-06-12One annotated recompute of the 11 May – 10 June history, before any external subscriber, to correct two corrupt factor inputs (a misparsed DRAM series; unbounded GPU price rows). Pre-recompute series archived. From the first external subscriber onward the published series stands as printed (index immutability).
2026-06-12Renamed CPI → GPI on every user-facing surface (Grid Standards v1.1); no change to the calculation.
2026-06-29A v1.0-formula defect affecting 11–17 May identified and corrected forward; thirty-one days of window-drift left in the published series as annotated history, not rewritten.
2026-07-24The identity decision of record (2026-07-24) records that Supply Chain Forward is to leave the GPI daily z-score and be rebuilt as a capacity register — the change is decided in principle but NOT yet effective: no notice has been issued and v2.0 with four factors remains the method of record. Publish-before-effect applies when it lands.identity decision of record 2026-07-24 §3 (docs/adr)

· Downstream, surfaces, notices, sources

where it flows · where it shows · what governs it
Downstream series

None.

Surfaces
  • / (masthead score, index strip)
  • /archive
  • /api/print series.gpi
  • /api/mcp get_conditions
Notices that govern this code

No methodology change notice attaches to this code.

Sources of record
scripts/calculate_cpi.py ↔ dashboard/lib/cpi.tsdashboard/lib/cpi-bands.ts (getBand)dashboard/lib/queries.ts (GPI_FACTOR_ORDER, fetchGpiMethodology)
This page renders the method of record for GPI; it does not define it. Printed values are never rewritten — a change in method is announced by notice before it affects a print (publish-before-effect); a correction restates only what the day’s own information set supported. Permanent print URLs: /api/print/<date>.