METHODOLOGY

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

Universe filters

Before ACPI runs, the model list gets cleaned up:

  1. Variant SKU dedup— batch, free-tier, and provider-alias listings collapse into their base model, so the same model doesn’t get counted twice.
  2. Outlier exclusion — anything priced above $500 per million blended tokens is dropped as non-representative.
  3. Validity check — models missing a real, non-zero input or output price are dropped.
Bucket structure

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.

Calculation
Step 1 — Blended price

Every model’s raw price collapses into one blended number, weighted 75% input / 25% output — the standard 3:1 usage ratio for real workloads.

blended = (input_price × 0.75) + (output_price × 0.25)
Step 2 — Market health adjustment (P2)

A market health score scales every blended price. It’s the only adjustment that’s actually live today. Reviewed and updated monthly.

p2_adj = 0.5 + (P2_SCORE / 100) = 0.5 + (74 / 100) = 1.24
adjusted_price = blended × p2_adj
Step 3 — Hardware-floor spread (P3, reported, not yet applied)

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.

p3_spread = blended / HARDWARE_FLOOR
Step 4 — Index value

ACPI is the average of the two bucket averages, using the adjusted prices.

ACPI = 0.5 × mean(premium_bucket_adjusted) + 0.5 × mean(commodity_bucket_adjusted)

Checked against the live snapshot: 0.5 × 4.4539 + 0.5 × 4.9831 = 4.7185, published ACPI 4.7185.

Parameters
Parameter
Rationale
Cadence
75/25 input/output blend
Matches how real workloads actually split input vs. output tokens — roughly 3:1.
Semi-annual review
50/50 bucket weighting
Stops a handful of expensive flagship models from dragging the index around, and keeps the commodity long tail represented.
Semi-annual review
HARDWARE_FLOOR = $0.135
H100 SXM5 median spot rate, per million tokens. Feeds the P3 diagnostic only — not applied to the published price yet.
Quarterly update
P2_SCORE = 74
Market health signal (0–100): provider financial stability, API reliability, ecosystem concentration. The only adjustment that’s actually live today.
Monthly update
P3 log dampening, 50× cap
Would soften extreme premium pricing before it can skew the index. Designed, not shipped.
Planned
Index integrity
  • 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.