Inference price index
One number per model for what a million tokens costs on OpenCheap right now, and one for the market as a whole: the OpenCheap Inference Index. Both are built from the prices buyers actually pay.
One price per model
A model has two prices: per million prompt (input) tokens and per million completion (output) tokens. The index blends them at the reference mix of three prompt tokens to one completion token, the shape of a typical request:
index = (3 × prompt + completion) / 4, in USD per million tokens.
Each model's entry also gives the two legs on their own (prompt, completion), so you can blend them at your own mix.
Matched prices first
Every paid answer is a matched price: what it was billed per million tokens on each leg, at the price that applied to its prompt size. When a model had at least 20 matched requests in the last 24 hours, its index is their volume-weighted average: each answer weighs as many tokens as it billed (prompt and completion). Free answers and answers that failed before any output are not counted.
Otherwise the top of the book
Every source that can serve a model right now is an ask in its order book, at the price a buyer would pay there. The best healthy ask at the 3:1 mix is the top of the book: the market price, the price a request without a limit is matched at. It is sampled every minute. With fewer than 20 matched requests in the last 24 hours, the index is the time-weighted average of those samples over the same 24 hours.
What each model shows
value_usd_per_m: the index. prompt, completion: its two legs. change_24h, change_7d: the relative change against the value published 24 hours and 7 days before (0.05 is 5 % up), null without one that old. discount_vs_list: how far under the model's public list price at the same 3:1 mix (0.4 is 40 % under), null for a model without one. asks: how many healthy asks the book has for the model now. community_share: the share of the last 24 hours' matched tokens served by community sellers, null without matched requests.
The OpenCheap Inference Index
A fixed basket of the ten most used models, weighted by their share of the tokens matched up to the day it was first published. Each model's index on that day is its base value; the composite was 100 on that day (base_date) and moves with its members:
composite = 100 × Σ weight × (index ÷ base value)
The weights and base values do not change with daily use: a cheaper market moves the composite down, a shift in what people use does not. A member without an index for a while counts at its last published one. The basket is reviewed quarterly; a change is announced here first.
Publication
The index is live: GET https://api.opencheap.si/v1/index gives every model and the composite now, and GET https://api.opencheap.si/v1/index/{model}?range=24h|7d|30d one model's values over time (composite for the OpenCheap Inference Index). No key is needed; answers are cached for a minute, and each address may ask 60 times a minute. A value is also published every hour and kept, unchanged, with the samples it was computed from, so every published value can be recomputed.
Prices and limits
A request without a limit is matched at the top of the book. A request with a limit (provider.max_price in the body, the x-max-price: prompt,completion header, or a default on the key or the gateway) is served only where both legs are within it; when nothing is, it gets 422 no_offer_under_limit with the market price in the message, and is not billed.