How GPU Economy collects prices
Every number on this site was read from a page or API the provider publishes, by an automated parser that runs every hour. Nothing is estimated, averaged in from third parties, converted between currencies, or filled in by hand. This page explains what that means in practice.
One unit: US dollars per GPU per hour
Providers quote in different shapes — per GPU, per 8-GPU node, per second, per instance with a bundled CPU. We store the quote exactly as listed, together with how many GPUs it covers, and the database derives the per-GPU-hour rate. Where a rate was divided, the page shows the original quote and the divisor next to it (for example, $49.24/node ÷ 8), so the normalization is auditable rather than silent. Per-second serverless rates are multiplied by 3,600.
What a figure covers: price scope
Providers sell different things under “per GPU-hour”. Every row carries a scope, shown as a tag next to the price wherever it is not a plain instance:
- instance (no tag) — a runnable VM, pod or node: the GPU together with the CPU and memory it ships with. Most providers, including the hyperscalers.
- GPU only — the GPU line item alone; CPU, memory and storage are billed separately, so a runnable machine costs more. Cudo Compute, Google Cloud, Modal.
- floor — the cheapest verified offer on a marketplace at scrape time, not a rate card; it moves with supply. Vast.ai.
- from — a provider’s advertised “from $X” rate rather than a configured instance. GMI Cloud.
Medians and the Price Index include all scopes; the tag lets you discount a figure that is not like-for-like. The scope is also a field in prices.json.
Three price types, never mixed
- On-demand — the listed pay-as-you-go rate. The Price Index and every median on the site use on-demand rates only.
- Spot — interruptible or preemptible capacity, as published by the provider. Marketplace auction bids are not recorded.
- Reserved — a published committed-use rate. Contact-sales and quote-only tiers carry no number and are left out.
Providers partition prices differently
The “region” column holds whatever the provider itself uses to split prices: a geography, a data center, or a tier such as RunPod's Secure and Community Cloud. Those are never averaged together. For marketplaces (Vast.ai) we record the floor — the cheapest verified, rentable, single-GPU offer — and label it as such.
What is deliberately not on the site
- Prices in currencies other than USD. A converted figure would not match the source page a reader follows; EUR-only providers are listed but not scraped until they can be shown in both currencies.
- Estimates of any kind, including for GPUs a provider sells only on request.
- Prices scraped from a page that could not be parsed reliably. A parser that finds nothing fails loudly instead of writing zeros.
Freshness and history
Prices are re-read every hour and stored append-only, so every figure has a capture time and the history is never rewritten. The changelog lists every change between consecutive reads; the Price Index is a weekly series on top of the same data. Each page states when its data was last updated.
Sources, as of
18 of 27 listed providers are currently scraped, covering 13 GPU models.
| Provider | Source | Status | Notes |
|---|---|---|---|
| Cudo Compute | public API | scraped hourly | Public machine-types API. gpuPriceHr is the GPU component only - vCPU/RAM/storage billed separately, a runnable instance costs more. |
| GMI Cloud | pricing page (HTML) | scraped hourly | — |
| Nebius | pricing page (HTML) | scraped hourly | — |
| RunPod | public API | scraped hourly | — |
| Vast.ai | public API | scraped hourly | auction pricing, API only |
| DataCrunch | public API | scraped hourly | — |
| Hyperstack | pricing page (HTML) | scraped hourly | — |
| Jarvislabs | pricing page (HTML) | scraped hourly | — |
| Lambda | pricing page (HTML) | scraped hourly | Pricing page lists per-GPU rates for 1x/2x/4x/8x configs (old per-node note is stale). 1-Click Cluster reserved rates are contact-sales, not scraped. |
| Modal | pricing page (HTML) | scraped hourly | per-second serverless |
| OVHcloud | public API | scraped hourly | US catalog only (USD). H100/A100 sold from FR regions in EUR - not scraped. |
| Together AI | pricing page (HTML) | scraped hourly | — |
| Vultr | public API | scraped hourly | — |
| Amazon Web Services | public API | scraped hourly | EC2 on-demand, Linux, us-east-1 only; instance price stored per node with GPU count (p5 = 8x H100). Spot needs signed API calls - not recorded. |
| CoreWeave | pricing page (HTML) | scraped hourly | Rate card priced per 8-GPU HGX node - parser stores per_node with gpu_count, DB derives per-GPU. GB200 and B300 on-demand are quote-only; B300 spot is published. |
| Google Cloud | public API | scraped hourly | Cloud Billing Catalog API (needs GCP_API_KEY). Plain per-GPU-hour SKUs in US regions, cheapest region kept; commitments/reserved/DWS skipped. GPU component only - A3/A2 VMs bill CPU and RAM separately. Some spot SKUs carry usageType OnDemand; type is decided from the description. |
| Microsoft Azure | public API | scraped hourly | Retail Prices API, Linux VMs; cheapest region per SKU kept, region = armRegionName. ND/NC series priced per VM, stored per node with GPU count. Spot recorded; Low Priority skipped. |
| Oracle Cloud (OCI) | public API | scraped hourly | Public price list API, already per GPU per hour, single global list price. Cloud@Customer SKUs skipped. |
| Scaleway | pricing page (HTML) | not yet | NOT SCRAPED: prices in EUR only (fr-par/pl-waw). A converted USD figure would not match the source page a reader follows - needs an FX policy decision first. |
| TensorDock | public API | not yet | NOT SCRAPED: marketplace API returns an empty hostnode list after the Voltage Park acquisition (checked Sep 2026). Re-check later. |
| Crusoe | pricing page (HTML) | not yet | Blackwell quote-only |
| Latitude.sh | public API | not yet | bare metal |
| Massed Compute | pricing page (HTML) | not yet | — |
| Paperspace | pricing page (HTML) | not yet | multi-GPU per-node - normalize |
| Salad | pricing page (HTML) | not yet | consumer GPUs only |
| Voltage Park | pricing page (HTML) | not yet | — |
| Sesterce | JS-rendered page | not yet | needs headless browser |
Retail prices
Purchase prices come from marketplace listings with a stated condition (new, refurbished, used). The site shows the 30-day median per condition and links each listing; accessory listings and implausible prices are filtered out. Retail coverage is being built out.
Affiliate disclosure
Some provider links may become referral links. That never affects which prices are shown, how they are normalized, or how providers are ordered — every table is sorted by price.
Using the data
The Price Index is published under CC BY 4.0, withJSON and CSV downloads;prices.json carries every current quote with its source URL. Attribute as “GPU Economy” and link the page you used.
Data updated: