Economics
Cloud rate cards and training-run costs; hyperscaler capital expenditure.
Cloud rate cards and training-run costs; hyperscaler capital expenditure.
Published on-demand offerings drawn, each a distinct provider, instance and region. 1 further offering has no placeable rate and is named in the caption.
GPU classes, one row each, ordered by median rate. The ordering is itself a reading: the cheapest compute per unit of throughput is the newest silicon’s.
Providers, across 51 priced regions. 101 of the drawn offerings come from Azure alone, so much of the width below is one seller’s own regional spread.
The widest spread inside a single GPU class: H100 SXM, from Lambda’s single-GPU rate in US (Texas) at $104.05 (verified 2026-04-19) to Azure’s 8-GPU rate in South Africa West at $565.76 (verified 2026-09-04).
The same measurement restricted to the newest refresh (2026-09-04), across the 28 of 126 drawn offerings verified that day. The headline pair above was verified 138 days apart, so the difference between these two figures measures the share of the published dispersion that is refresh staleness.
The price dispersion plate. One mark per published on-demand offering, positioned on a shared logarithmic axis of dollars per petaFLOP-day (the instance’s hourly rate divided by its dense BF16 throughput, with no sparsity uplift).
The axis is logarithmic because the drawn range spans 8.5 times end to end and the reading this plate offers is a ratio; equal ratios are equal distances here.
Mark ink encodes the date the price was verified: full ink for the 2026-09-04 refresh, half-tone for older offerings, and a hairline outline with no fill for the oldest at 2026-03-29.
The short vertical rule in each row is that row’s median; marks are nudged off the centre line only so a cluster stays countable.
One offering is not drawn: GCP’s H200 SXM in US Central (Iowa) (no published rate).
3 of the drawn offerings are priced as single-GPU instances and the rest as multi-GPU nodes; the denominator divides node size out, so they share an axis, but they are different products to buy.
These are list prices. A large buyer signs a committed-capacity contract at rates no rate card publishes, so the plate measures the dispersion of published on-demand rates. It does not measure what compute actually costs the firms buying most of it.
A rate card quotes dollars per hour for a machine, which leaves any two of them incomparable until the hardware inside is divided out. Normalizing to $/petaFLOP-day (the hourly instance rate over its dense BF16 throughput, with no sparsity uplift) puts 126 published on-demand offerings from 6 providers across 51 regions on one axis. Inside H100 SXM alone the cheapest and most expensive published rates are 5.4 times apart, and the pair was verified 138 days apart; restricted to the newest refresh alone, the spread is 3.4 times. Much of that width is one seller’s geography: 101 of the 126 offerings are Azure’s own regional price list. None of it is what a hyperscale buyer pays: committed-capacity contracts are negotiated and no rate card publishes them. The index below tracks the cheapest of these published rates from the day it began recording.
Cheapest on-demand $/petaFLOP-day for H100 SXM (8-GPU node), across the daily-refreshed providers (AWS, Azure, Oracle). GCP, CoreWeave, and Lambda publish no fetchable pricing API and are captured by manual snapshot, so this line excludes them; they appear, with their verification dates, in the vintage view below.
Pool composition. This is a cheapest-across-the-pool statistic, so its level moves when the pool changes even if no provider changed price. 3 stretches were drawn from fewer than the full 3: 2026-07-21 → 2026-08-08, Azure only; 2026-08-13 → 2026-08-13, AWS + Oracle (OCI) only; 2026-08-20 → 2026-08-20, AWS + Oracle (OCI) only. The capture cron’s AWS and Oracle branches were failing silently over that window (fixed 2026-08-09); the step up and back down at its edges is the pool changing width, and no reading should be taken across it. The shaded band on the plot marks it.
The line is computed over the daily-refresh provider pool, and the vertical rules mark the dates that pool changed width. A level shift at a rule reflects that change in composition; it is not a price movement.
The age of each live on-demand quote for H100 SXM (8-GPU node) right now; it is not a historical series. Oldest first, and a manual-snapshot quote can be materially older than a daily-refreshed one. A provider whose regions share one verification date folds to one line; every region’s own figure remains in the rate table below.
| Provider | Region | $/pFLOP-day | Verified | Cadence |
|---|---|---|---|---|
| CoreWeave | US East (N. Virginia) | $149.29 | 2026-03-29 | manual snapshot |
| GCP | US Central (Iowa) | $268.29 | 2026-04-19 | manual snapshot |
| Lambda | US (Texas) | $104.05 | 2026-04-19 | manual snapshot |
| AWS | 3 regions | $166.87–$208.59 | 2026-09-04 | daily |
| Azure | 24 regions | $311.48–$565.76 | 2026-09-04 | daily |
| Oracle (OCI) | Global | $242.55 | 2026-09-04 | daily |
The plate above draws the on-demand tier because that is the tier every provider publishes. The table below adds the rest (spot, one-year and three-year reserved, each cell dated with its verification) alongside an on-prem total-cost buildup at three- and five-year horizons. Both columns are stated in the same $/petaFLOP-day, so the gap between the cheapest cloud cell and the on-prem figure is the build-versus-buy boundary. How the index is derived
Every $/petaFLOP-day on this page divides a published price by a published throughput figure, and the throughput figure comes from Epoch AI’s ML Hardware database: dense BF16 TFLOP/s per accelerator, without 2:4 structured sparsity, which is the baseline production training runs are calibrated against. The full derivation, with its assumptions.
CHEAPEST ON-DEMAND
CHEAPEST SPOT
ON-PREM (3YR AMORT.)
CHEAPEST ON-DEMAND
CHEAPEST SPOT
ON-PREM (3YR AMORT.)
| Provider | Instance | Region | $/hr | $/SCU | Priced | Source |
|---|---|---|---|---|---|---|
| AWS | p5.48xlarge | US East (N. Virginia) | ↓ $43.28 since 2026-04-19$55.04 | $166.87 | 2026-09-04 | |
| AWS | p5.48xlarge | Asia Pacific (Tokyo) | ↓ $54.39 since 2026-04-19$68.80 | $208.59 | 2026-09-04 | |
| AWS | p5.48xlarge | US West (Oregon) | ↓ $43.28 since 2026-04-19$55.04 | $166.87 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Central US | $120.93 | $366.65 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Japan West | $156.81 | $475.43 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Spain Central | $127.82 | $387.52 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Poland Central | $127.82 | $387.52 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | West Europe | $127.82 | $387.52 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | US Gov Arizona | $122.90 | $372.61 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | East US | ↑ $4.42 since 2026-04-19$102.74 | $311.48 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Korea Central | $137.15 | $415.81 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Japan East | $142.56 | $432.23 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | West Central US | $117.98 | $357.71 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | West US 3 | $102.74 | $311.48 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Switzerland North | $145.01 | $439.66 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Sweden Central | $127.82 | $387.52 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | South Africa North | $173.09 | $524.77 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | West US | $127.82 | $387.52 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | North Central US | $122.40 | $371.10 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | UK South | $122.90 | $372.61 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | East US 2 | ↑ $4.42 since 2026-04-19$102.74 | $311.48 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | South Africa West | $186.61 | $565.76 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Canada Central | $122.40 | $371.10 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | West US 2 | ↑ $4.42 since 2026-04-19$102.74 | $311.48 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | UAE North | $140.60 | $426.27 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | South Central US | $117.97 | $357.66 | 2026-09-04 | |
| Azure | Standard_ND96isr_H100_v5 | Australia East | $142.60 | $432.34 | 2026-09-04 | |
| CoreWeave | HGX-H100_SXM5_80GB | US East (N. Virginia) | $49.24 | $149.29 | 2026-03-29 | |
| GCP | a3-highgpu-8g | US Central (Iowa) | ↓ $9.66 since 2026-03-29$88.49 | $268.29 | 2026-04-19 | |
| Lambda | H100_SXM5_80GB-1gpu | US (Texas) | $4.29 | $104.05 | 2026-04-19 | |
| Oracle Cloud | OCI-H100_SXM5_80GB | Global | $80.00 | $242.55 | 2026-09-04 |
Unit. $/SCU values use BF16 dense throughput; the divisor for each class is tabled below. NVIDIA marketing quotes sparsity-inclusive rates (1,979 / 624 / 4,500 for H100 / A100 / B200); a reader deriving $/SCU from provider $/hour against those sparsity-inclusive numbers will read values ~2× lower than the index here. See the Methodology section below for the unit choice.
| GPU class | Dense BF16 TFLOP/s | Offerings |
|---|---|---|
| A100 SXM | 312 | 37 |
| H100 SXM | 989.5 | 31 |
| H200 SXMCompute-identical to the H100 SXM; the H200’s advantage is HBM3e memory bandwidth, which this denominator does not measure. | 989.5 | 37 |
| MI300XAMD datasheet dense FP16/BF16 (2,614.9 with sparsity). AMD’s sparsity support differs from NVIDIA’s 2:4, so the dense figure is the only like-for-like basis across the two vendors. | 1,307.4 | 17 |
| B200 | 2,250 | 3 |
| L40SNVIDIA quotes 362.05 dense and 733 with sparsity for this part; the dense figure is used, as everywhere else on this page. | 362.05 | 1 |
| GB200 | 2,500 | 1 |
Dense BF16 TFLOP/s per GPU, from the Epoch AI ML Hardware dataset; no 2:4 structured sparsity applied.
Refresh cadence. The cadence is split; the Priced column gives each row's own verification date. AWS on-demand refreshes daily from the AWS Pricing Bulk API (GitHub Actions worker); Azure (all four tiers), AWS spot / reserved (ec2.shop), and OCI on-demand refresh daily via cron. GCP, CoreWeave, and Lambda publish no fetchable pricing API and refresh only when the manual snapshot pipeline is run, with each run verified against the provider's public pricing page.
Coverage. 7 GPU classes are priced here: A100 SXM (37 offerings from 6 providers), H200 SXM (37 offerings from 5 providers, 1 without a published rate), H100 SXM (31 offerings from 6 providers), MI300X (17 offerings from 1 provider), B200 (3 offerings from 3 providers), GB200 (1 offering from 1 provider) and L40S (1 offering from 1 provider). Lambda rows price single-GPU (1×) instances and are labeled as such. The per-GPU rate on Lambda's 8-GPU training nodes is a separate listing and arrives with the next manual snapshot refresh (these rows verified 2026-04-19).
Methodology
Scrutica Compute Unit (SCU) = 1 petaFLOP-day of BF16 training compute = 8.64 × 1019 FLOP. At 40% MFU against BF16 dense throughput, one H100 SXM produces ~0.40 SCU per day (989.5 TFLOP/s × 0.40 = 395.8 TFLOP/s = 0.396 PFLOP/s).
Scrutica Compute Unit (SCU) = one petaflop-day of training compute (8.64 × 1019 FLOP, i.e., a petaflop sustained for 24 hours). The unit normalizes compute cost across providers so the rate cards compare like-for-like.
Cloud pricing: $/SCU = hourly instance price × 24 / (num_gpus × bf16_tflops / 1000). BF16 TFLOP/s dense (no 2:4 structured sparsity) from the Epoch AI ML Hardware dataset; the divisor for each of the 7 classes priced here is tabled beneath the rate table. NVIDIA marketing sheets quote sparsity-inclusive figures; Scrutica uses dense for consistency with the FLOP Capacity Engine and real-world training throughput.
On-premise: $/SCU = (hardware amortization + lifetime power cost) / (daily PFLOP output × useful life in days). Includes GPU, networking ($5K/GPU), and facility share ($3K/GPU) amortized over the useful life set on the On-Premise tab — 3 years at present.