How ACPI is priced.
ACPI prices every model we track, then blends two equal-weighted buckets into one number.
361 models · 60 providers · last computed 2026-10-16T02:34:00Z
Before ACPI runs, the model list gets cleaned up:
- Variant SKU dedup— batch, free-tier, and provider-alias listings collapse into their base model, so the same model doesn’t get counted twice.
- Outlier exclusion — anything priced above $500 per million blended tokens is dropped as non-representative.
- Validity check — models missing a real, non-zero input or output price are dropped.
The filtered list splits into two buckets: premium (Tier S/A — frontier and specialist models) and commodity (Tier B/C — high-volume, cost-optimized models). Each bucket is averaged on its own, then the two are combined 50/50. That keeps the cheap long tail just as influential as the frontier, instead of letting a handful of flagship models drag the index around.
Every model’s raw price collapses into one blended number, weighted 75% input / 25% output — the standard 3:1 usage ratio for real workloads.
A market health score scales every blended price. It’s the only adjustment that’s actually live today. Reviewed and updated monthly.
adjusted_price = blended × p2_adj
Every blended price also gets expressed as a multiple of the hardware floor — what it costs to produce one million tokens on reference H100 SXM5 infrastructure at spot rates (currently $0.135/1M, updated quarterly). We publish this per model — the current mean is 28.0×— but it’s a diagnostic today, not a live multiplier on the published price. A log-dampened version capped at 50× is designed but not wired in yet.
ACPI is the average of the two bucket averages, using the adjusted prices.
Checked against the live snapshot: 0.5 × 4.4539 + 0.5 × 4.9831 = 4.7185, published ACPI 4.7185.
- Every hourly run appends to a history log — index value, bucket means, component averages. Past rows never get rewritten.
- The full per-model list for each run gets committed to the public price snapshot, so any historical index value can be reconstructed from that commit — even though the working file gets overwritten on the next run.
- Variant dedup runs before every computation, so a provider catalog change (a new batch, free-tier, or alias SKU) can’t inflate the tracked model count or shift the index.
- If a pricing fetch fails, the run exits before writing anything — the dashboard keeps serving the last good value instead of a partial or zeroed one. There’s no automated staleness indicator for that yet; that’s a known gap, not a claimed feature.