Every number in this index is normalized to a canonical unit, stamped with a date, and labeled with exactly one of five trust labels that state how it was obtained. This page is the contract behind those labels.
Methodology
Canonical units
| Modality | Canonical unit |
|---|---|
| Video | USD per second of output at 720p. Resolution modifiers shown as multipliers; per-clip prices divided by the model's default clip length. |
| Image | USD per image at 1024×1024, default quality. Quality tiers (low/medium/high) and larger sizes listed as separate rows or noted per model — never averaged into one number. |
| Voice | USD per 1,000 characters of input text. Secondary display: USD per minute of audio at 850 characters/minute. |
Credits convert to USD at the credit price of the cheapest tier that includes the model, with the full tier table always shown alongside. A credits number is never displayed without its USD conversion. GPU-second billing (Replicate-style) uses the provider's own per-output estimate where published; otherwise listed GPU rate × measured median generation time, always labeled estimated.
Image normalization, stated plainly. The reference image is 1024×1024 at the provider's default quality — the same normalization Price Per Token uses, so the two indexes are directly comparable. 1024×1024 is 1,048,576 raw pixels (≈1.049 MP), but every provider that prices "per megapixel" bills a 1024×1024 output as one megapixel (fal.ai normalizes its price list "to 1MP"; Black Forest Labs bills a "first megapixel" that covers it) — so we convert per-MP rates at 1 billed MP rather than inventing a ×1.049 nobody charges. Token-billed image output (Gemini image models, GPT Image) converts at the provider's published output-tokens-per-image × the per-1M-token rate; where the provider publishes the per-image equivalent directly, we use their number. Models priced only by quality tier (GPT Image low/medium/high, Grok quality settings) list each tier as its own row — the cheapest-price highlight picks the cheapest tier, and the tier is always named next to the price. Subscription-only models (Midjourney) get an estimatedeffective per-image price with the assumption shown (fast-GPU-time allowance ÷ measured job time × images per job); the plan prices themselves are quoted as published.
The five labels
| Label | Meaning |
|---|---|
| verified <date> | Scraped from a public pricing page on that date; source URL shown. |
| derived <date> | Computed from verified or audited inputs (credit math, tier division, per-clip division) — formula shown. |
| estimated <date> | From measured usage, GPU-time inference, or a list rate not yet independently scraped; method noted. |
| hidden | Contact-sales or behind a login. Last-known figure shown, struck as unconfirmed. |
| disputed | Contested by the provider or a reader; both figures shown until re-verified. |
Current state of the index (49 models, latest stamp September 7, 2026): the video and voice datasets were seeded on 2026-08-28 from the operator's cost audit (2026-03-23) plus launch research, and no video or voice price is yet labeled verified — the first live verification pass for those modalities runs at deployment. The image modality was added on 2026-09-07 with a live read of provider pricing pages: prices read directly from a public pricing page that day carry verified 2026-09-07; aggregator rates carried over from the cost audit remain derived or estimated until scraped. Label flips and corrections land in the change log. We publish the labels honestly rather than pretending freshness we don't have.
Sources and cadence
The source registry (~48 URLs — official pricing pages plus per-model pages on fal.ai, Replicate, and Kie.ai) is re-scraped weekly, every Monday. Each run produces a dated snapshot; any diff against the previous snapshot becomes a change-log entry. Diffs are reviewed by a human-supervised agent before publishing — an extraction that returns nothing, or a price swing over 50%, is quarantined for manual review instead of auto-published.
Corrections
Wrong price? Email corrections@costpergen.com with the source. Contested figures get the disputed label immediately — both numbers shown — and are re-verified within 72 hours. Every correction lands in the change log; nothing is silently edited.
Neutrality
This site is operated by Downshift, which also operates FairStack, an AI-media API. FairStack is listed like any other provider, is never default-sorted upward, never highlighted as "cheapest" unless the numbers say so, and buys no placement. Affiliate links (marked rel="sponsored", routed via /go/) never affect sort order or the cheapest-price highlight. See the full disclosure.
Open data
The full normalized dataset is a CC-BY download: costpergen.csv. Attribution required — link to costpergen.com. The llms.txt file describes the dataset and canonical URLs for machine readers.