How ComputePulse indices are built
Every index is a weighted trimmed mean of eligible price observations, normalized to USD per GPU-hour. This page documents what is collected, what is excluded, and how each value is calculated.
Index definitions
Price normalization
- 1.All prices are normalized to USD per GPU-hour: normalized_price = total_hourly_price / gpu_count
- 2.PCIe and SXM observations are NEVER mixed within a specific index (only in Global Composite)
- 3.Spot and on-demand observations are NEVER mixed within a specific index
- 4.Multi-GPU offerings (e.g., 8x H100 nodes) are normalized by dividing total hourly cost by GPU count
- 5.Observations with confidence < 0.1 are excluded from index calculation
- 6.Observations older than the staleness TTL (default 24h) are excluded
- 7.Token pricing: price_per_1M_tokens = (price_per_hour × 1,000,000) / (tokens_per_second × 3,600)
- 8.Token pricing throughput presets: Conservative (100 tps), Base (150 tps), Aggressive (180 tps)
- 9.Published API token prices (from OpenAI, Anthropic, Google, xAI) are NEVER mixed with derived infrastructure costs
Data collection
Every displayed price includes full source provenance: provider name, source URL, source type (official_api, official_price_page, marketplace_listing, etc.), observation timestamp, confidence score, and parser identification. We prioritize official APIs and pricing pages. Marketplace prices (e.g., Vast.ai) represent median or typical listings and are flagged with lower confidence scores due to variability.
Update frequency
Prices are refreshed on each API call with a minimum refresh interval of 60 seconds. Observations are considered stale after 24 hours and excluded from index computation. The 'observed_at' timestamp on each price reflects when the data was fetched, not when the provider last updated their page.
Source Types
Direct from the provider's pricing API. Highest confidence. Examples: Azure Retail Prices API, AWS Pricing API.
Parsed from the provider's official pricing webpage. May be manually maintained if the page is JS-rendered.
From the provider's pricing calculator tool. Similar confidence to price page.
From GPU marketplaces like Vast.ai. Prices are set by hosts and fluctuate. Lower confidence due to variability.
Data Source Transparency
Live API Sources
Azure GPU pricing is fetched live from the Azure Retail Prices API on every refresh cycle (no authentication required). This provides real-time price tracking with high confidence.
Published Price Page Sources
AWS, CoreWeave, Lambda, RunPod, Vast.ai, GCP, and Oracle prices are sourced from their official pricing pages and manually verified. These prices are updated when providers change their published rates. Each observation includes a "last verified" timestamp.
Model Provider Token Pricing
OpenAI, Anthropic, Google, and xAI token prices are sourced from their official pricing pages and manually verified. These are retail API prices, not infrastructure costs. Each model's price includes a source link.
Blackwell Coverage
Blackwell (B200, GB200) GPU pricing is still emerging. Coverage is limited compared to Hopper (H100). The same methodology applies but fewer providers are tracked. Coverage will expand as providers list Blackwell pricing publicly.
API Endpoints
GET /api/prices/latestAll latest price observations. Supports ?provider= and ?bucket= filters.
GET /api/indices/latestAll computed index values.
GET /api/indices/[slug]Specific index by slug (e.g., h100-global-compute, h100-pcie, h100-sxm, h100-spot).
GET /api/sources/latestSource registry and data state metadata.
GET /api/methodologyFull methodology description as JSON.
What this is — and isn't: ComputePulse tracks observable public and quoted GPU rental pricing. It does not claim to observe every private contracted transaction. The index is a provider-balanced view of the visible market, not a clearing price for bilateral enterprise deals.
Source confidence and data quality
The detailed source-confidence table, per-provider observation counts, deduplication logic, and historical data-quality notes are part of the public methodology.
Source confidence by type
| Source type | Confidence | In index? |
|---|---|---|
| Official provider API (live) | 0.90–0.95 | Yes |
| Aggregator API (Shadeform, live) | 0.75–0.90 | Yes |
| Marketplace listing (Vast.ai, live) | 0.70–0.95 | Yes |
| Published rate card (static) | 0.85 | Reference only |
Deduplication logic
- Observations are de-duplicated by provider, GPU model, form factor, GPU count, and pricing type; the highest-confidence record per key is kept.
- Marketplace offers are additionally de-duplicated by physical machine — a single host listed as x1/x2/x4/x8 at the same per-GPU price counts once, not five times, so one seller cannot flood the index.
- Per-provider weight is capped at 25% of total index weight to prevent single-provider dominance; the top and bottom 10% of prices are trimmed.
Historical data-quality notes
- Live marketplace APIs intermittently change which offers they return, which can shift coverage between refreshes; per-provider snapshots are recorded per GPU model to keep series clean.
- Per-provider history before model-specific tagging was blended across GPU models and is not reconstructed retroactively for multi-model providers.
- Hyperscaler coverage for newer GPUs (B200) remains thin and is disclosed per tier rather than imputed.