Methodology
Every price on this site links to the official page it came from and shows the date we last confirmed it. This page explains how prices get here, how we keep them fresh and how we turn subscription plans into a cost per output.
Where prices come from
Each price records one of three collection methods:
- API: read from a pricing API, for example OpenRouter's model list. A scheduled job fetches these daily and cross-checks them against a second source; a difference of more than 1% is flagged for review.
- Watched page: the maker's or reseller's official pricing page. We fetch it daily, respecting robots.txt, and compare it with the previous copy. When the page changes, the change is turned into a proposed price update that a person reviews before it goes live.
- Manual: entered by hand from the official pricing page, then re-checked on a schedule.
All prices are kept in version control, so every edit has a reviewed, dated history. Next to each price you'll find a Source link to the page it came from.
Verification and freshness
"Verified 29 Oct 2026" means that on that date the price matched the linked source. Prices not re-verified for 30 days show a May be outdated badge, and our team is alerted to check them. We never leave a stale price unmarked.
All amounts are list prices in US dollars, before tax, volume discounts, free tiers and promotional credits.
Text model prices
Text models are priced per million tokens, separately for input, output and cached input. To rank models with one number, the tables also show a blended price:
blended = (3 × input price + output price) ÷ 4
That weighting assumes three input tokens for every output token, which is typical for chat and retrieval workloads. Use the text calculator for your own ratio.
Some models charge more for long prompts (a long-context tier, for example above 200K tokens). Tables show the standard price and note the tier; the calculator applies the tier price when your prompt is over the threshold. Cached input is charged at the cached rate for the share of input you mark as cache hits, and at the normal input rate when a provider has no cached price.
How subscription plans are converted
Tools like Runway sell monthly plans with credits rather than per-output prices. We convert them using the credit cost of one output, as published by the tool:
effective $ per unit = (monthly price ÷ credits included) × credits per unit
For example, a $15 plan with 625 credits, where one second of 720p video costs 5 credits, works out to ($15 ÷ 625) × 5 = $0.12 per second.
For a whole job, the calculators work out the credits needed and then:
- if the job fits in the included credits, the cost is one month's fee("fits in plan");
- if it doesn't and the plan sells top-ups, we add the top-ups you'd need: the number of top-ups is (credits needed − credits included) ÷ credits per top-up, rounded up, and each costs the top-up price;
- if the plan sells no top-ups, we count the extra months of credits you'd need instead.
Plans with annual billing are also shown at their per-month annual price. Plan prices assume you use the plan only for this job; unused credits and other features aren't valued.
Price change log
A daily sync compares the current prices with the last ones it saw and records every new, changed or removed price line with its old and new value. These appear on theprice changes page, on each model's price history chart and in theRSS feed. History starts from the day we began tracking each price.
Affiliate links and ads
Affiliate status never changes ranking or sorting. Tables and calculator results are ordered by price only, whether or not a provider pays us.
- Where a tool has an affiliate program, we may show a clearly labelled "Try <tool>" button on its plan and model pages. These links are marked as sponsored.
- Ads, when shown, are labelled and never placed above calculator results, so the tools stay fast and usable.
Corrections
If a price is wrong or missing, send us the model and a link to the official source. We check and fix reported prices, and the fix shows up in the change log.