Methodology
How gpu.gl collects, normalizes and checks GPU cloud prices, and what it leaves out.
Where prices come from
Every price comes from a provider’s own public price list, read by a script once a day. gpu.gl only uses sources that publish prices for automated reading without an account, an API key or a login, and whose terms and robots.txt allow it. Current sources:
- AWS: official public price file
- OCI: official public price list api
- Akamai: official public api
- DataCrunch: official public api
- OVHcloud: official public order catalog
- Lambda: public pricing page
- DigitalOcean: public pricing page
- Nebius: public pricing page
The script identifies itself as gpu.gl price snapshot (+https://gpu.gl/methodology/), makes a small number of requests per source, and waits between them. Each provider page on gpu.gl names the exact address it reads.
How prices are normalized
- Per GPU-hour. An instance price is divided by the number of whole GPUs in the instance. An 8-GPU server at $55.04 an hour is $6.88 per GPU-hour. Instances with a fraction of a GPU are left out.
- US dollars. All current sources publish US dollar prices. If a source priced in another currency is added, it will be converted at the European Central Bank’s daily reference rate, with the original price and the rate’s date shown.
- Linux, shared tenancy, no bundled software. Where a provider charges extra for Windows, dedicated hosts or pre-installed software, gpu.gl uses the plain Linux price.
- Price types are never mixed.
- On-demand: pay by the hour (or minute), no commitment.
- Spot / interruptible: cheaper capacity the provider can reclaim at short notice, at the provider’s listed spot price (currently DataCrunch). AWS publishes spot prices only to account holders, so AWS spot prices are not shown.
- Reserved 1 yr / 3 yr: the effective hourly price of a 1- or 3-year commitment. For AWS this is a Standard Reserved Instance with no upfront payment; prices paid partly or fully upfront, and convertible reservations, are left out.
- The table shows the lowest price. Each row in the main table is one provider, GPU and price type. It shows the lowest per-GPU price across that provider’s instance sizes and regions, and names the configuration. GPU pages list every configuration.
- Low, median and high on GPU pages are taken across providers’ lowest prices for that GPU and price type, so a provider with many regions counts once.
Announced prices
Some providers publish prices that take effect on a future date. gpu.gl lists those on the provider’s page as announced prices, and moves them into the table and into history only from that date.
Regions
The region filter groups provider regions into broad areas (North America, Europe, Asia Pacific and so on). Providers that charge the same price everywhere, or do not publish prices per region, appear under every area. AWS prices are read for six regions (US East, US West, Ireland, Frankfurt, Tokyo, Sydney); other providers are read in full.
Timestamps and freshness
Every price shows the time gpu.gl fetched it, in UTC. Where the source states its own date (the AWS price file’s publication date, the Oracle price list date) it is kept in the downloadable data. If a source fails, gpu.gl keeps showing its last good prices with their original fetch time, and marks them stale once they are more than 48 hours old. If the whole site has not been refreshed for 48 hours, every page says so at the top.
Checks
- Prices that are zero, missing, or above $150 per GPU-hour are rejected.
- A spot price that is not below the same instance’s on-demand price, or a reserved price above it, is rejected as a probable labelling error.
- If a source suddenly returns far fewer prices than the day before, gpu.gl keeps the previous data rather than publishing a partial list.
- Rejections are recorded in the repository with the reason. Corrections to methods or data are listed in the changelog.
History
gpu.gl stores one snapshot a day, starting 2026-11-08. Charts are drawn only from those snapshots. Nothing before the first snapshot is estimated, imported or back-filled. All snapshots are free to download.
Coverage, and who is missing
Some GPU clouds publish prices only on web pages whose terms forbid automated reading, or only through APIs that need an account. gpu.gl leaves those out rather than break their terms. Where a provider later offers a public price feed, or permission, it will be added and noted in the changelog.
Providers gpu.gl does not read automatically, with the reason. Their own pricing pages are linked so you can compare by hand.
- Microsoft Azure: the terms covering its price API are under review; not shown yet.
- Google Cloud: GPU prices are drawn into the page by script, and Google’s price API needs a key; not shown yet.
- CoreWeave, Crusoe, Hyperstack: their website terms restrict copying the site or using it for commercial purposes.
- Vast.ai, RunPod, TensorDock, Shadeform, SF Compute: their terms restrict automated collection or reuse of their price data.
- Vultr, Scaleway: their API hosts’ robots.txt asks automated agents not to read them.
Providers can ask to be added, or removed, at the address below.
Independence
gpu.gl is not affiliated with any provider or manufacturer. It carries no ads, sponsored listings, affiliate links or referral codes, and no provider pays to be included or ranked. Links to providers go straight to their own pricing pages without tracking parameters. If that ever changes, this page will say so first, and any paid placement will be labelled where it appears.
Product names such as NVIDIA H100 or AMD MI300X are used only to identify the hardware. Spec figures come from the manufacturers’ public spec sheets, linked on each GPU page.
Limits
Listed prices are not the whole cost. Storage, network egress, minimum terms, availability and negotiated discounts all vary, and a listed GPU may be sold out. Always confirm the price with the provider before you buy. Spotted an error? [email protected].