How these numbers are made
Transparency is the product. Everything below is exactly what runs in production; the pipeline code paths map one-to-one to these rules.
What we collect
We record GPU rental price observations from 9 providers (Azure, DataCrunch, Hyperstack, Lambda, Nebius, RunPod, SaladCloud, Vast.ai, Voltage Park) — marketplaces (e.g. Vast.ai) and neoclouds (e.g. RunPod, Lambda) — every hour. Wherever a provider offers an official API, we use it; otherwise we scrape public pricing pages respectfully, honoring robots.txt. Each observation stores the provider, the canonical GPU SKU, region where known, the price, the pricing type, a timestamp, and a fragment of the raw source payload for auditability.
Normalization rules
- Per-GPU, per-hour. Multi-GPU instance prices are divided by GPU count. An 8×H100 node at $23.92/hr is recorded as $2.99 per GPU-hour.
- Pricing types never mix. Spot, on-demand, community, and serverless are different products with different reliability guarantees. Every number on this site belongs to exactly one type; the default everywhere is on-demand.
- One canonical SKU list. Every provider’s naming (“H100 80GB HBM3”, “h100-sxm5”) maps to one canonical SKU (H100-SXM). SXM and PCIe variants are separate SKUs — different interconnect, meaningfully different performance.
- Median, not mean — in two stages. Marketplace listings produce constant outliers, and a marketplace posts thousands of offers while a list-price provider posts one. So a SKU’s daily price is computed per provider first (each provider’s median), then combined as the median across providers. No single provider’s volume can drown out the rest.
- Missing beats wrong. If a scrape fails, we log it and move on. Gaps in charts are real gaps. We never interpolate, backfill, or estimate.
- Some sources are excluded on purpose. When a source can’t give us a number we can stand behind — for example, an API that returns a different randomized sample of offers on every anonymous request — we leave it out until we can query it properly. The per-provider decision log is public: every source we use, skip, or delay, with the reason.
The Price of Compute Index
The headline Index is a weighted basket of the 6 most-rented SKUs (H100-SXM (heaviest), A100-80GB, L40S, RTX 4090, and peers), computed daily from each SKU’s two-stage median on-demand price (per-provider medians, then the median across providers) and normalized to 100 as of Aug 10. Weights are published below and reviewed quarterly; changes are announced in the changelog, never applied silently. Think CPI for compute.
| SKU | Weight | Status today |
|---|---|---|
| NVIDIA H100 SXM | 30 | in basket |
| NVIDIA H200 SXM | 15 | in basket |
| NVIDIA A100 80GB SXM | 15 | in basket |
| NVIDIA L40S | 15 | in basket |
| NVIDIA RTX 4090 | 15 | in basket |
| NVIDIA B200 | 10 | in basket |
A basket SKU contributes on a given day only when at least 2 providers priced it that day; ineligible SKUs drop out and remaining weights renormalize proportionally. The Index is labeled provisional until at least 3 providers contribute data.
Honest limitations
- Listed ≠ attainable. We record what providers list; a listed price doesn’t guarantee capacity at that price. Timestamps on everything let you judge freshness.
- Compute price ≠ total cost. Egress, storage, and minimum commitments vary by provider and are not in these numbers (a per-provider notes column is on the roadmap).
- Coverage is finite. 9 providers today · 654 observations today. Missing one you use? Request it.
Archival data
History before August 9, 2026 (where shown) is reconstructed from the Internet Archive’s dated snapshots of provider pricing pages — real recorded list prices, parsed from the archived page, run through the same per-SKU validation bands and VRAM checks as live data, and labeled archival, with the snapshot URL stored on every observation. “Never interpolate, backfill, or estimate” still holds in the sense that matters: we never invent a number. Months without a usable snapshot stay empty; ambiguous rows (a listing that doesn’t say which form factor it was) are skipped, not guessed. Archival coverage is list-price providers only — marketplace offer books were never archived — and charts draw the archival region dashed with hollow points. The Index never uses archival data: it begins at its base day.
Why this exists
GPU compute is becoming a commodity with a price everyone needs to know — training runs, inference budgets, side projects, and soon, futures contracts. Institutional players get Bloomberg terminals for this. Developers get twenty tabs of provider pricing pages.
Price of Compute is the free reference: every major provider’s GPU rental prices, normalized to one honest unit ($/GPU-hour), recorded every day, with the history open to everyone. It’s built and run by Noah Flanary as a public resource. The methodology is public, the API is free, and no provider pays to look better than they are.
— Noah Flanary · contact
Changelog
Every methodology change is dated and listed here.
- 2026-08-10 — Live Index print added: the official basket (same composition, weights, and base prices as the published daily row) revalued at each provider's latest observations from the last 3 hours, recomputed on every page load. SKUs without fresh data drop out and weights renormalize, mirroring the daily rule. The published daily series is unchanged — the live print is the reading between closes, and it is never written into the series.
- 2026-08-10 — Collection frequency increased from every 6 hours to hourly (marketplace sources every 3 hours). Daily medians and the Index are unchanged in definition — they just draw on more samples per day.
- 2026-08-10 — Archival data added: history before Aug 9, 2026 is reconstructed from the Internet Archive's dated snapshots of provider pricing pages (Lambda first), ingested with the same per-SKU validation as live data, labeled archival, with the snapshot URL stored per observation. The Index never uses archival data — it begins at its base day. We still never interpolate or estimate.
- 2026-08-10 — Vast.ai gate v2: per-SKU median stability. Authenticated views proved complete per instant but epoch-unstable, while published medians stay view-invariant for stable SKUs — so each run ingests exactly the SKUs whose median agrees within 1% across two views fetched 30 seconds apart; the rest are logged gaps for that run.
- 2026-08-09 — Initial methodology published: two-stage medians, canonical SKU list with per-SKU validation bands, Index basket and weights defined. Index computation begins when ≥2 providers cover a basket SKU.