Research snapshot: 6 October 2026. Prices are US dollars. This is an automated catalog study, not a hands-on model benchmark.
I collected an OpenRouter catalog snapshot and recomputed the token charges for 198 paid, text-output, non-batch listings across nine model developer namespaces. My question was deliberately narrow: how much does the listed input/output price change a token budget when the balance between reading and writing changes? I did not send inference requests, measure latency, assess answer quality, or obtain quotes from nine direct APIs.
The most useful result is not a winning brand. It is a reproducible way to separate catalog prices from workload assumptions. In an input-heavy scenario, the family medians run from $0.349 to $9 per million total tokens, but individual listings can sit far outside their family midpoint. A buyer who substitutes a family name for a model ID loses information that matters to the budget.
This article complements our 2026 AI pricing guide. That guide addresses the broader buying question, including tools and subscriptions; this study supplies a dated API catalog, explicit formulas, and a row-level audit trail. A subscription allowance is not the same product as a metered token rate, and neither should be silently substituted for the other.
Throughout, “I collected” and “I recomputed” refer to the automated research workflow described below, not a fictional individual researcher. Editorial review remains pending. The original contribution is the filtered dataset and scenario arithmetic, not a claim to have developed or independently evaluated the models.
Methodology: a dated catalog, explicit filters, and three token mixes
I used the saved response from the public OpenRouter models API, collected on 6 October 2026, as the source of the catalog records. The preserved response contains 464 entries before this study’s filters. I read the raw catalog alongside the derived row file and family summary, rather than treating the summaries as a substitute for the underlying entries. This is one cross-sectional snapshot. It is not a daily price history, a longitudinal experiment, or a measurement of transactions completed at those prices.
I restricted the study to these nine exact developer namespaces: openai, anthropic, google, mistralai, deepseek, x-ai, cohere, amazon, and qwen. The namespace is the segment before the slash in the model ID. It is a grouping key, not proof of which infrastructure operator would serve a request. All prices came through OpenRouter’s catalog. Calling these nine direct providers would misstate the collection method: I did not independently retrieve each developer’s own API pricing schedule, commercial agreement, or regional rate card.
The inclusion rule required the catalog’s output modalities to be exactly text, positive listed prompt and completion rates, and an ID without the free or batch suffixes excluded from this comparison. Text-only output does not necessarily mean text-only input: a retained model may accept another input modality. Models listing image or audio output alongside text were outside scope. Reapplying these conditions to the saved raw response reproduced the 198 retained IDs exactly, with no missing or additional IDs. The retained dataset also contains 198 unique IDs.
I kept catalog IDs as the unit of observation. Different versions and variants remain different rows when OpenRouter gives them different IDs. I did not collapse them into an assumed underlying architecture or declare every row a unique base model. That choice is useful for someone comparing selectable listings, but it influences the distribution. A namespace with many historical variants contributes more observations than a namespace with a short catalog. It does not contribute more users, more revenue, or more independently trained systems.
For each retained entry, I used the prompt and completion values in the raw pricing object. Those values are dollars per token. I multiplied each by one million to obtain separate input and output prices in dollars per million tokens. I preserved the model ID, namespace, context length, model-card URL, and optional intelligence index in the derived dataset. Additional pricing fields, where present, were not folded into the base token formulas. The output is therefore a standardized prompt/completion comparison, not a reconstruction of a complete invoice.
I then calculated three hypothetical mixes of one million total tokens. If P is the listed input price per million and C is the listed output price per million, the 80/20 result is 0.8P + 0.2C; the 50/50 result is 0.5P + 0.5C; and the 20/80 result is 0.2P + 0.8C. The first number always denotes the input share. These scenarios contain the same total token volume, so the difference isolates the listed price sensitivity to composition. They do not represent three observed customer workloads.
This denominator needs care. One million input tokens plus one million output tokens is two million total tokens, not the 50/50 scenario shown here. Nor do the shares refer to words, requests, or wall-clock time. Tokenization can differ between models, so equal token counts do not guarantee equal amounts of underlying text. For an actual application, I would count input and billed output using its own request records and then apply the two prices separately. The scenario table is a planning aid when those records are unavailable.
I checked every stored scenario value against its weighted input/output calculation. All 198 entries passed that arithmetic check across all three mixes. I also checked the nine family counts against the retained IDs. Family medians are medians of the individual listing costs at the stated mix; they are not usage-weighted prices. For an even-sized family, the midpoint averages the two central sorted listing costs. I display readable decimal amounts in the prose rather than exposing floating-point artifacts such as a trailing string of zeros.
The family summary uses 80/20 as its reference mix. The other scenarios remain available at row level because an input-heavy median should not masquerade as an output-heavy budget. I use exact named rows when explaining a cost change, and attach their OpenRouter model cards so readers can inspect the listings. Those cards are primary sources for the catalog entries, but they are live pages. A later visit may show a changed price; the saved snapshot and downloadable derived rows are the evidence for this article’s date.
The optional intelligence index comes from third-party benchmark metadata relayed by the catalog, specifically its Artificial Analysis field. I did not run that benchmark, validate its testing conditions, or treat absent values as zero. I do not calculate intelligence per dollar, infer that price causes capability, or rank application quality from that field. Finally, I made no inference calls during this study. There are no measured latency, throughput, reliability, or task-success results here. Reproduction means rebuilding the filtered price calculations, not claiming to reproduce model performance.
Finding 1: catalog breadth makes an overall “average family” misleading
The retained counts are OpenAI 60, Qwen 53, Google 20, Mistral 19, Anthropic 15, DeepSeek 14, xAI seven, Cohere five, and Amazon five. These are counts of listings under the exact namespaces, not counts of serving companies. OpenAI and Qwen together account for about 57.1% of the retained rows. An overall listing statistic would therefore lean heavily toward those two catalogs simply because they contain more eligible entries.
I prefer family summaries followed by named rows. Giving every namespace equal weight would answer a different question, while weighting by real traffic would require usage data I do not have. Neither method is automatically the “market price.” The denominator must match the decision: selecting a listing, comparing catalog composition, and predicting a customer invoice are distinct exercises.
There is another trap in the family labels. The openai/gpt-oss-20b listing and the openai/o1-pro listing share a namespace but occupy very different price positions. A family bucket is not a contract, deployment mode, or performance tier. Our open versus closed AI analysis covers that separate distinction; the catalog calculation should not flatten it into a brand score.
Finding 2: the 80/20 medians are useful shortlisting signals, not quotes
For one million total tokens at 80% input and 20% output, I calculated these family medians: DeepSeek $0.349, Mistral $0.3918, Qwen $0.44, Cohere $0.54, Amazon $0.74, Google $0.74, xAI $1.50, OpenAI $3.40, and Anthropic $9.00. Every amount describes the middle of that family’s retained OpenRouter listings at this particular token mix.
The equality between Amazon and Google illustrates why a median is insufficient for choosing a model. The Nova Micro row costs $0.056 in this scenario, whereas Nova Premier costs $4.50. Google’s Gemma 3 4B row is $0.06, while Gemini 3.1 Pro Preview is $4.00. Equal medians do not imply interchangeable portfolios.
I would use the summary to identify where to inspect, then consult exact rows for a budget proposal. It is not defensible to insert the median into a purchase order unless the chosen listing actually has that price. The table below also makes the unequal family sample sizes visible, so a five-row midpoint is not mistaken for evidence with the same catalog breadth as a sixty-row midpoint.
| Namespace | Retained listings | 80/20 median ($) | Minimum ($) | Maximum ($) |
|---|---|---|---|---|
| deepseek | 14 | 0.349 | 0.25056 | 1.06 |
| mistralai | 19 | 0.3918 | 0.0212 | 2.8 |
| qwen | 53 | 0.44 | 0.05 | 5.6 |
| cohere | 5 | 0.54 | 0.06 | 4 |
| 20 | 0.74 | 0.06 | 4 | |
| amazon | 5 | 0.74 | 0.056 | 4.5 |
| x-ai | 7 | 1.5 | 1.2 | 2.8 |
| openai | 60 | 3.4 | 0.0324 | 240 |
| anthropic | 15 | 9 | 1.8 | 27 |

Finding 3: cheap rows and expensive rows coexist inside the same namespace
The OpenAI namespace spans $0.0324 for gpt-oss-20b to $240 for o1-pro at 80/20. Anthropic’s retained range runs from $1.80 for Claude Haiku 4.5 to $27 for Claude Opus 4.1. Those endpoints are snapshot price facts, not a recommendation to adopt the cheapest endpoint or proof that the most expensive endpoint delivers a corresponding quality gain.
The same issue appears outside those namespaces. Mistral Nemo is $0.0212 at 80/20, compared with $2.80 for Mistral Large. Within Qwen, Qwen3.7 Flash is $0.05, while Qwen3.8 Max Prime is $5.60. A blanket claim that an entire namespace is cheap misses both the range and the actual selectable option.
My practical response is to retain an exact ID in every cost discussion. I would also record why that row passed the task’s requirements before comparing rates. Our ChatGPT, Claude, Gemini, and DeepSeek comparison addresses a broader product choice. This dataset cannot replace that choice with an unqualified price ordering, especially when a product interface and an API listing are different things.
Finding 4: output-heavy work exposes a different budget
The token mix changes the answer without changing the model. Claude Haiku 4.5 has listed input/output rates of $1 and $5 per million respectively. Its calculated cost moves from $1.80 at 80/20 to $3 at 50/50 and $4.20 at 20/80. Gemini 3.1 Pro Preview has rates of $2 and $12, producing $4, $7, and $10 across the same scenarios. These are weighted calculations, not prices observed in paid requests.
For a hypothetical workload of 100 million total tokens, those endpoints imply $180 versus $420 for Haiku, and $400 versus $1,000 for Gemini, as the mix moves from input-heavy to output-heavy. Those estimates hold total tokens fixed and include only the modeled token charges. I would not describe either figure as a monthly invoice without specifying that the 100 million tokens are a hypothetical monthly volume and that other billable items remain outside the calculation.
Long explanations, generated reports, and repeated revisions are reasons to investigate output share, not evidence that a particular business necessarily has an output-heavy workload. Conversely, a short extraction answer from a large document suggests a different planning scenario. Our prompt-engineering guide is relevant here: specifying the required output can influence the tokens your system requests, but I have not measured the savings from any prompting technique.

Finding 5: lower price sensitivity is a separate property from lower price
I compared both the starting cost and the movement across mixes. DeepSeek V4 Pro has input/output rates of $0.2088 and $0.4176 per million. Its three scenario costs are $0.25056, $0.3132, and $0.37584. At the hypothetical 100-million-token scale, the input-heavy and output-heavy estimates become $25.056 and $37.584. The calculation is comparatively insensitive to composition because the two listed rates are closer together.
Grok Build 0.1 similarly moves from $1.20 to $1.50 to $1.80, using input/output rates of $1 and $2. By contrast, Grok 4.5 moves from $2.80 to $4 to $5.20. These examples distinguish price sensitivity from namespace identity. They do not establish which model would generate fewer tokens for the same useful answer.
I would treat a narrower scenario spread as easier to budget when composition is uncertain, not as a quality score. A low spread can coexist with a high absolute rate, and a low absolute rate can coexist with expensive retries. The scenario chart gives a bounded view of rate sensitivity; actual token demand still requires application evidence. That boundary prevents a spreadsheet property from becoming an unsupported recommendation. Our fine-tuning decision guide addresses another possible intervention: changing the model or its adaptation strategy requires a separate evaluation and cost model, not an assumed discount applied to these catalog rows.
| Exact listing | Input $/1M | Output $/1M | 80/20 $ | 50/50 $ | 20/80 $ |
|---|---|---|---|---|---|
| deepseek/deepseek-v4-pro | 0.2088 | 0.4176 | 0.25056 | 0.3132 | 0.37584 |
| amazon/nova-2-lite-v1 | 0.3 | 2.5 | 0.74 | 1.4 | 2.06 |
| anthropic/claude-haiku-4.5 | 1 | 5 | 1.8 | 3 | 4.2 |
| google/gemini-3.1-pro-preview | 2 | 12 | 4 | 7 | 10 |
| x-ai/grok-4.5 | 2 | 6 | 2.8 | 4 | 5.2 |

Finding 6: a sub-dollar shortlist is broad, but still needs task gates
At the 80/20 mix, 106 of the 198 retained entries cost no more than $1 per million total tokens. That is a catalog threshold count, not a count of acceptable substitutes for a production model. It tells me a tight token budget does not automatically reduce the search to one namespace. It cannot tell me how many candidates meet a language requirement, return reliable structured output, or satisfy an organization’s data handling rules.
For example, Command R7B 12-2024 is $0.06 at 80/20, while Command A is $4.00. Neither number certifies retrieval performance. Amazon’s Nova 2 Lite is $0.74 at 80/20 but $2.06 at 20/80. A shortlist built around an input-heavy ceiling must be rebuilt if the intended workload is mainly generation.
I would first define pass/fail requirements, then price only the passing candidates. Our AI coding tools benchmark-source comparison explains why workload-specific evidence matters. For this study, no candidate passed a measured application test because no such test was run. The threshold is an invitation to evaluate more precisely, not a list of endorsed models.
Finding 7: context length is a constraint, not a cost allowance
The dataset preserves catalog context length because it can eliminate an otherwise attractive candidate. Qwen3.7 Flash lists 1,000,000 tokens of context alongside a low base rate, while DeepSeek V4 Pro and Gemini 3.1 Pro Preview list 1,048,576. That metadata describes a catalog capacity field. It does not mean a request can use that entire amount as output, or that every route and every setting provides identical practical behavior.
A larger context also does not provide free input tokens. If an application sends more text, its input bill depends on the billed token volume and applicable rate. My fixed one-million-total-token comparison does not model a different request size for each model. Nor does it establish whether using a longer context helps a particular answer enough to justify the additional input. That would require a controlled task comparison.
I would consult the listing’s endpoint details and output limits before adopting a long-context candidate, then measure whether the application needs that capacity. Our context-window engineering guide is a useful companion. A context field, a price field, and successful retrieval from a long document are three separate claims. Only the first two are represented in this catalog analysis.
Finding 8: price per successful workflow needs evidence this catalog cannot supply
An agent can spend tokens on planning, tool results, conversation history, and repeated attempts before producing an accepted result. The relevant operational denominator may therefore be an approved document or a resolved case, rather than a million tokens. I can calculate the price of the tokens; I cannot calculate that success denominator from a catalog entry. There are no observations here of how often any listed model retries or fails.
For budgeting, I would separate the baseline token estimate from a clearly labeled allowance for uncertainty. I would then record actual billed input, actual billed output, retry reasons, and acceptance outcomes during a pilot. That makes a later comparison possible without assuming that equal prompt lengths or equal model names imply equal completed work. It also identifies whether a price change or a workflow change caused the bill to move.
Our AI agents architecture explainer describes those multi-step systems. The present study contributes a reusable rate layer for such a budget, not a measured agent cost. It would be misleading to multiply a catalog price by an invented number of reasoning steps and present the result as research. Hypothetical assumptions belong in a planning worksheet, visibly separated from observed usage.
Finding 9: an auditable procurement choice starts with the row, not the ranking
My preferred decision sequence is to identify the application’s mandatory capabilities and data constraints, choose exact candidate IDs, estimate its input/output mix, and compare the relevant scenario. Next, I would inspect the available serving routes and their terms, obtain any required approval, and run a separately documented pilot. Only that pilot could support claims about quality, response time, or cost per accepted outcome. The catalog comparison ends before that evidence begins.
The intelligence-index field cannot bridge the gap. It is present for 148 retained entries, but missingness is not a low score, and the supplied values are not my measurements. Combining them with this snapshot’s rates into an “intelligence per dollar” ranking would create a composite metric whose relevance to the buyer’s task has not been established. I therefore leave the metadata separate from the budget decision.
I would also preserve the collection date, formula version, selected row, and route assumptions in an approval record. Our AI privacy guide covers a consideration the price columns cannot settle. A cheaper listing that fails an organization’s handling requirements should not remain in its eligible shortlist. That is a governance constraint, not an unexplained premium to subtract from the pricing analysis.
Limitations: what this study does not establish
This is a snapshot of one intermediary catalog, filtered to nine specified developer namespaces. It excludes other namespaces, free listings, batch variants, and entries with non-text output modalities. The sample is therefore neither the entire OpenRouter catalog nor the entire LLM market. It is also not a random sample of applications or buying decisions. Catalog breadth reflects listing practices, including versions and variants, rather than market share or independent deployments.
The prompt/completion formulas intentionally omit other possible charges and adjustments. They do not incorporate cache behavior, route-specific differences, long-context tiers, tool charges, multimodal billing, discounts, credit fees, taxes, or contractual minimums. Not every excluded item necessarily applies to every row; the point is that this study did not model those items. A live request may also expose billing details unavailable from the two standardized price fields.
I made no model calls. Consequently, I cannot establish answer quality, useful output length, billed reasoning behavior, latency, throughput, uptime, or the rate of successful completion. Equal total tokens are a controlled arithmetic assumption, not proof of equal work. Different tokenizers, different prompting requirements, and different retry patterns could change a real comparison. A cheap row in the table may be unsuitable for a task, while an expensive row may or may not justify its cost.
The context and intelligence metadata were carried through from the catalog, not independently validated. Third-party scores may have different evaluation coverage and timing; missing values remain missing. Live model cards and the API may change after the collection date, so current prices should be checked before procurement. Finally, the article is an automated research-desk draft with editorial review pending, not a claim of expert credentials or a completed human review. Its strongest evidence is the preserved source, transparent filters, and arithmetic that another reader can recompute.
Frequently asked questions
1. Did you compare nine direct API providers?
No. I compared listings under nine developer namespaces inside OpenRouter’s catalog. The family labels identify the model-ID grouping, not nine independently collected rate cards or nine measured serving systems. A direct developer API may have different prices, features, discounts, and terms.
2. What exactly does the 80/20 price mean?
It means 800,000 input tokens and 200,000 output tokens, totaling one million. I multiply the input price per million by 0.8 and the output price per million by 0.2, then add them. It is a scenario cost in dollars, not a blended rate for an observed customer.
3. Which family is cheapest?
DeepSeek has the lowest retained family median at the 80/20 mix, $0.349. That does not make every DeepSeek listing cheaper than every alternative. Mistral Nemo, for example, is $0.0212 in that scenario. The row, task requirements, and workload mix matter more than a family-level slogan.
4. Does a lower listed price mean better value?
Not by itself. This study measures neither task success nor the number of tokens needed for a useful result. A value comparison needs a relevant application test and an acceptance rule. I can help estimate token charges, but I cannot certify cost per successful outcome from these records.
5. Did you test speed or model intelligence?
No inference calls were made and no latency was measured. Any intelligence index in the downloadable rows is third-party metadata relayed by OpenRouter, not an AI Made benchmark. I did not turn it into a price-adjusted ranking or infer a causal relationship between capability and rates.
6. Are these the costs of ChatGPT or Claude subscriptions?
No. These are metered API catalog rates for named listings, expressed through token scenarios. Consumer subscriptions can bundle interfaces, limits, and features that this dataset does not describe. The earlier pricing guide addresses that broader purchasing context; this appendix is for reproducible catalog arithmetic.
7. Can I use the table to estimate a production budget?
Use it as a baseline, then replace the scenario shares with your actual billed input and output volumes. Check the chosen route and all applicable charges. Add measured retry and workflow behavior when you have it. Do not use a family median as the quoted price of an exact model.
8. How can I reproduce or update the comparison?
Preserve a dated API response, apply the namespace, modality, paid-rate, and suffix filters, and recompute the three weighted costs for every retained ID. Recount the rows and medians before charting. A new snapshot is an updated study; it should not silently overwrite the evidence for this date.
Full data appendix: every retained listing, not just the examples
The appendix table contains all 198 retained rows. Each row identifies the exact catalog ID and developer namespace, separate input and output prices per million tokens, the 80/20, 50/50, and 20/80 scenario costs, catalog context length, optional third-party intelligence metadata, and its source model-card link. The summary and examples are navigation aids; they are not substitutes for this complete listing.
The data download supports checking an individual calculation, building a task-specific shortlist, or comparing this snapshot with a future collection. Preserve the date when reusing a number. If a live model card differs from a saved row, distinguish a subsequent catalog change from an arithmetic mistake before drawing conclusions.
| Listing/source | Namespace | Input $/1M | Output $/1M | 80/20 $ | 50/50 $ | 20/80 $ | Context tokens | Third-party intelligence index |
|---|---|---|---|---|---|---|---|---|
| amazon/nova-micro-v1 | amazon | 0.035 | 0.14 | 0.056 | 0.0875 | 0.119 | 128000 | 5.9 |
| amazon/nova-lite-v1 | amazon | 0.06 | 0.24 | 0.096 | 0.15 | 0.204 | 300000 | 6.7 |
| amazon/nova-2-lite-v1 | amazon | 0.3 | 2.5 | 0.74 | 1.4 | 2.06 | 1000000 | 13.4 |
| amazon/nova-pro-v1 | amazon | 0.8 | 3.2 | 1.28 | 2 | 2.72 | 300000 | 7 |
| amazon/nova-premier-v1 | amazon | 2.5 | 12.5 | 4.5 | 7.5 | 10.5 | 1000000 | 9.2 |
| anthropic/claude-haiku-4.5 | anthropic | 1 | 5 | 1.8 | 3 | 4.2 | 200000 | 16.9 |
| anthropic/claude-sonnet-5 | anthropic | 2 | 10 | 3.6 | 6 | 8.4 | 1000000 | 38.2 |
| anthropic/claude-sonnet-5.5 | anthropic | 2 | 10 | 3.6 | 6 | 8.4 | 1000000 | 56 |
| anthropic/claude-sonnet-4 | anthropic | 3 | 15 | 5.4 | 9 | 12.6 | 200000 | 18.9 |
| anthropic/claude-sonnet-4.5 | anthropic | 3 | 15 | 5.4 | 9 | 12.6 | 1000000 | 20.7 |
| anthropic/claude-sonnet-4.6 | anthropic | 3 | 15 | 5.4 | 9 | 12.6 | 1000000 | 30.1 |
| anthropic/claude-opus-5.5 | anthropic | 4 | 20 | 7.2 | 12 | 16.8 | 1000000 | 57.6 |
| anthropic/claude-opus-4.5 | anthropic | 5 | 25 | 9 | 15 | 21 | 200000 | 29.1 |
| anthropic/claude-opus-4.6 | anthropic | 5 | 25 | 9 | 15 | 21 | 1000000 | 31.9 |
| anthropic/claude-opus-4.7 | anthropic | 5 | 25 | 9 | 15 | 21 | 1000000 | 40.7 |
| anthropic/claude-opus-4.8 | anthropic | 5 | 25 | 9 | 15 | 21 | 1000000 | 41.8 |
| anthropic/claude-opus-5 | anthropic | 5 | 25 | 9 | 15 | 21 | 1000000 | 50.8 |
| anthropic/claude-fable-5 | anthropic | 10 | 50 | 18 | 30 | 42 | 1000000 | 49.6 |
| anthropic/claude-fable-5.1 | anthropic | 10 | 50 | 18 | 30 | 42 | 1000000 | 53.4 |
| anthropic/claude-opus-4.1 | anthropic | 15 | 75 | 27 | 45 | 63 | 200000 | 22.8 |
| cohere/command-r7b-12-2024 | cohere | 0.0375 | 0.15 | 0.06 | 0.09375 | 0.1275 | 128000 | Not supplied |
| cohere/command-r-08-2024 | cohere | 0.15 | 0.6 | 0.24 | 0.375 | 0.51 | 128000 | Not supplied |
| cohere/command-a-plus | cohere | 0.3 | 1.5 | 0.54 | 0.9 | 1.26 | 192000 | Not supplied |
| cohere/command-a | cohere | 2.5 | 10 | 4 | 6.25 | 8.5 | 256000 | 13.1 |
| cohere/command-r-plus-08-2024 | cohere | 2.5 | 10 | 4 | 6.25 | 8.5 | 128000 | Not supplied |
| deepseek/deepseek-v4-pro | deepseek | 0.2088 | 0.4176 | 0.25056 | 0.3132 | 0.37584 | 1048576 | 30.4 |
| deepseek/deepseek-v4-flash-0731 | deepseek | 0.0053 | 1.28 | 0.26024 | 0.64265 | 1.02506 | 1048576 | 34.3 |
| deepseek/deepseek-v4-flash | deepseek | 0.0179 | 1.28 | 0.27032 | 0.64895 | 1.02758 | 1048576 | 24.4 |
| deepseek/deepseek-v3.2-exp | deepseek | 0.27 | 0.41 | 0.298 | 0.34 | 0.382 | 163840 | 16.6 |
| deepseek/deepseek-v4-flash-vision-exp | deepseek | 0.2156 | 0.6468 | 0.30184 | 0.4312 | 0.56056 | 1048576 | 34.8 |
| deepseek/deepseek-v4.1-flash | deepseek | 0.0495 | 1.32 | 0.3036 | 0.68475 | 1.0659 | 1048576 | 39.5 |
| deepseek/deepseek-v3.2 | deepseek | 0.28 | 0.42 | 0.308 | 0.35 | 0.392 | 163840 | 21.5 |
| deepseek/deepseek-chat-v3.1 | deepseek | 0.25 | 0.95 | 0.39 | 0.6 | 0.81 | 163840 | 13.7 |
| deepseek/deepseek-chat | deepseek | 0.2574 | 1.0287 | 0.41166 | 0.64305 | 0.87444 | 163840 | Not supplied |
| deepseek/deepseek-v3.1-terminus | deepseek | 0.27 | 1 | 0.416 | 0.635 | 0.854 | 163840 | 14.8 |
| deepseek/deepseek-chat-v3-0324 | deepseek | 0.29 | 1.14 | 0.46 | 0.715 | 0.97 | 163840 | 9.7 |
| deepseek/deepseek-r1-0528 | deepseek | 0.5 | 2.15 | 0.83 | 1.325 | 1.82 | 163840 | 13.1 |
| deepseek/deepseek-v4-pro-0813 | deepseek | 0.66 | 1.98 | 0.924 | 1.32 | 1.716 | 1048576 | 36 |
| deepseek/deepseek-r1 | deepseek | 0.7 | 2.5 | 1.06 | 1.6 | 2.14 | 64000 | 11.4 |
| google/gemma-3-4b-it | 0.05 | 0.1 | 0.06 | 0.075 | 0.09 | 131072 | 4.8 | |
| google/gemma-3-12b-it | 0.05 | 0.15 | 0.07 | 0.1 | 0.13 | 131072 | 3.8 | |
| google/gemma-4-26b-a4b-it | 0.09 | 0.3 | 0.132 | 0.195 | 0.258 | 262144 | 16.7 | |
| google/gemma-4-31b-it | 0.09 | 0.34 | 0.14 | 0.215 | 0.29 | 262144 | 14.7 | |
| google/gemma-3-27b-it | 0.08 | 0.45 | 0.154 | 0.265 | 0.376 | 131072 | 4.9 | |
| google/gemini-2.5-flash-lite | 0.1 | 0.4 | 0.16 | 0.25 | 0.34 | 1048576 | 10.4 | |
| google/gemini-3.1-flash-lite | 0.25 | 1.5 | 0.5 | 0.875 | 1.25 | 1048576 | Not supplied | |
| google/gemini-3.1-flash-lite-preview | 0.25 | 1.5 | 0.5 | 0.875 | 1.25 | 1048576 | 15.6 | |
| google/gemma-2-27b-it | 0.65 | 0.65 | 0.65 | 0.65 | 0.65 | 8192 | Not supplied | |
| google/gemini-2.5-flash | 0.3 | 2.5 | 0.74 | 1.4 | 2.06 | 1048576 | 15.5 | |
| google/gemini-3.5-flash-lite | 0.3 | 2.5 | 0.74 | 1.4 | 2.06 | 1048576 | 22.2 | |
| google/gemini-3-flash-preview | 0.5 | 3 | 1 | 1.75 | 2.5 | 1048576 | 26.3 | |
| google/gemini-3.6-flash | 0.75 | 3.75 | 1.35 | 2.25 | 3.15 | 1048576 | 34 | |
| google/gemini-3.7-flash | 0.75 | 3.75 | 1.35 | 2.25 | 3.15 | 1048576 | 39.6 | |
| google/gemini-3.8-flash | 0.75 | 3.75 | 1.35 | 2.25 | 3.15 | 1048576 | 40.9 | |
| google/gemini-2.5-pro | 1.25 | 10 | 3 | 5.625 | 8.25 | 1048576 | 16.1 | |
| google/gemini-2.5-pro-preview | 1.25 | 10 | 3 | 5.625 | 8.25 | 1048576 | Not supplied | |
| google/gemini-3.5-flash | 1.5 | 9 | 3 | 5.25 | 7.5 | 1048576 | 33.6 | |
| google/gemini-3.1-pro-preview | 2 | 12 | 4 | 7 | 10 | 1048576 | 29.7 | |
| google/gemini-3.1-pro-preview-customtools | 2 | 12 | 4 | 7 | 10 | 1048576 | Not supplied | |
| mistralai/mistral-nemo | mistralai | 0.019 | 0.03 | 0.0212 | 0.0245 | 0.0278 | 131072 | Not supplied |
| mistralai/mistral-small-24b-instruct-2501 | mistralai | 0.05 | 0.08 | 0.056 | 0.065 | 0.074 | 32768 | 6.7 |
| mistralai/ministral-3b-2512 | mistralai | 0.1 | 0.1 | 0.1 | 0.1 | 0.1 | 131072 | 4.8 |
| mistralai/mistral-small-3.2-24b-instruct | mistralai | 0.09375 | 0.25 | 0.125 | 0.171875 | 0.21875 | 256000 | Not supplied |
| mistralai/voxtral-small-24b-2507 | mistralai | 0.1 | 0.3 | 0.14 | 0.2 | 0.26 | 32768 | Not supplied |
| mistralai/ministral-8b-2512 | mistralai | 0.15 | 0.15 | 0.15 | 0.15 | 0.15 | 262144 | 5.5 |
| mistralai/ministral-14b-2512 | mistralai | 0.2 | 0.2 | 0.2 | 0.2 | 0.2 | 262144 | 6 |
| mistralai/mistral-small-2603 | mistralai | 0.15 | 0.6 | 0.24 | 0.375 | 0.51 | 262144 | 11.3 |
| mistralai/mistral-saba | mistralai | 0.2 | 0.6 | 0.28 | 0.4 | 0.52 | 32768 | 6.5 |
| mistralai/mistral-small-3.1-24b-instruct | mistralai | 0.351 | 0.555 | 0.3918 | 0.453 | 0.5142 | 128000 | Not supplied |
| mistralai/codestral-2508 | mistralai | 0.3 | 0.9 | 0.42 | 0.6 | 0.78 | 256000 | Not supplied |
| mistralai/mistral-large-2512 | mistralai | 0.5 | 1.5 | 0.7 | 1 | 1.3 | 262144 | 9.3 |
| mistralai/devstral-2512 | mistralai | 0.4 | 2 | 0.72 | 1.2 | 1.68 | 262144 | 8.6 |
| mistralai/mistral-medium-3 | mistralai | 0.4 | 2 | 0.72 | 1.2 | 1.68 | 131072 | 9 |
| mistralai/mistral-medium-3.1 | mistralai | 0.4 | 2 | 0.72 | 1.2 | 1.68 | 131072 | 9.2 |
| mistralai/mistral-medium-3-5 | mistralai | 1.5 | 7.5 | 2.7 | 4.5 | 6.3 | 262144 | 14.2 |
| mistralai/mistral-large | mistralai | 2 | 6 | 2.8 | 4 | 5.2 | 128000 | 5.8 |
| mistralai/mistral-large-2407 | mistralai | 2 | 6 | 2.8 | 4 | 5.2 | 131072 | 7.6 |
| mistralai/mixtral-8x22b-instruct | mistralai | 2 | 6 | 2.8 | 4 | 5.2 | 65536 | 5.7 |
| openai/gpt-oss-20b | openai | 0.018 | 0.09 | 0.0324 | 0.054 | 0.0756 | 131072 | 10 |
| openai/gpt-oss-120b | openai | 0.037 | 0.17 | 0.0636 | 0.1035 | 0.1434 | 131072 | 11.6 |
| openai/gpt-5-nano | openai | 0.05 | 0.4 | 0.12 | 0.225 | 0.33 | 400000 | 13 |
| openai/gpt-oss-safeguard-20b | openai | 0.075 | 0.3 | 0.12 | 0.1875 | 0.255 | 131072 | Not supplied |
| openai/gpt-4.1-nano | openai | 0.1 | 0.4 | 0.16 | 0.25 | 0.34 | 1047576 | 7.8 |
| openai/gpt-6-luna | openai | 0.1 | 0.5 | 0.18 | 0.3 | 0.42 | 1050000 | 38.1 |
| openai/gpt-6-luna-pro | openai | 0.1 | 0.5 | 0.18 | 0.3 | 0.42 | 1050000 | Not supplied |
| openai/gpt-4o-mini | openai | 0.15 | 0.6 | 0.24 | 0.375 | 0.51 | 128000 | 6.7 |
| openai/gpt-4o-mini-2024-07-18 | openai | 0.15 | 0.6 | 0.24 | 0.375 | 0.51 | 128000 | Not supplied |
| openai/gpt-5.6-luna | openai | 0.2 | 1.2 | 0.4 | 0.7 | 1 | 1050000 | 37.3 |
| openai/gpt-5.6-luna-pro | openai | 0.2 | 1.2 | 0.4 | 0.7 | 1 | 1050000 | Not supplied |
| openai/gpt-5.4-nano | openai | 0.2 | 1.25 | 0.41 | 0.725 | 1.04 | 400000 | 20.7 |
| openai/gpt-5-mini | openai | 0.25 | 2 | 0.6 | 1.125 | 1.65 | 400000 | 20.6 |
| openai/gpt-5.1-codex-mini | openai | 0.25 | 2 | 0.6 | 1.125 | 1.65 | 400000 | 20.4 |
| openai/gpt-4.1-mini | openai | 0.4 | 1.6 | 0.64 | 1 | 1.36 | 1047576 | 10.2 |
| openai/gpt-3.5-turbo | openai | 0.5 | 1.5 | 0.7 | 1 | 1.3 | 16385 | 5.5 |
| openai/gpt-3.5-turbo-0613 | openai | 1 | 2 | 1.2 | 1.5 | 1.8 | 4095 | Not supplied |
| openai/gpt-5.4-mini | openai | 0.75 | 4.5 | 1.5 | 2.625 | 3.75 | 400000 | 24.1 |
| openai/gpt-3.5-turbo-instruct | openai | 1.5 | 2 | 1.6 | 1.75 | 1.9 | 4095 | Not supplied |
| openai/o3-mini | openai | 1.1 | 4.4 | 1.76 | 2.75 | 3.74 | 200000 | 12.5 |
| openai/o3-mini-high | openai | 1.1 | 4.4 | 1.76 | 2.75 | 3.74 | 200000 | 11 |
| openai/o4-mini | openai | 1.1 | 4.4 | 1.76 | 2.75 | 3.74 | 200000 | 16.7 |
| openai/o4-mini-high | openai | 1.1 | 4.4 | 1.76 | 2.75 | 3.74 | 200000 | Not supplied |
| openai/gpt-5 | openai | 1.25 | 10 | 3 | 5.625 | 8.25 | 400000 | 23 |
| openai/gpt-5.1 | openai | 1.25 | 10 | 3 | 5.625 | 8.25 | 400000 | 24.7 |
| openai/gpt-5.1-codex | openai | 1.25 | 10 | 3 | 5.625 | 8.25 | 400000 | 23.7 |
| openai/gpt-5.1-codex-max | openai | 1.25 | 10 | 3 | 5.625 | 8.25 | 400000 | Not supplied |
| openai/gpt-3.5-turbo-16k | openai | 3 | 4 | 3.2 | 3.5 | 3.8 | 16385 | Not supplied |
| openai/gpt-4.1 | openai | 2 | 8 | 3.2 | 5 | 6.8 | 1047576 | 12.7 |
| openai/o3 | openai | 2 | 8 | 3.2 | 5 | 6.8 | 200000 | 20.2 |
| openai/gpt-5.6-sol | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | 47 |
| openai/gpt-5.6-sol-pro | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | Not supplied |
| openai/gpt-6-sol | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | 47.6 |
| openai/gpt-6-sol-pro | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | Not supplied |
| openai/gpt-6.1-sol | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | 51.8 |
| openai/gpt-6.1-sol-pro | openai | 2 | 10 | 3.6 | 6 | 8.4 | 1050000 | Not supplied |
| openai/gpt-4o | openai | 2.5 | 10 | 4 | 6.25 | 8.5 | 128000 | Not supplied |
| openai/gpt-4o-2024-08-06 | openai | 2.5 | 10 | 4 | 6.25 | 8.5 | 128000 | 7.7 |
| openai/gpt-4o-2024-11-20 | openai | 2.5 | 10 | 4 | 6.25 | 8.5 | 128000 | 8.4 |
| openai/gpt-5.6-terra | openai | 2 | 12 | 4 | 7 | 10 | 1050000 | 42.1 |
| openai/gpt-5.6-terra-pro | openai | 2 | 12 | 4 | 7 | 10 | 1050000 | Not supplied |
| openai/gpt-5.2 | openai | 1.75 | 14 | 4.2 | 7.875 | 11.55 | 400000 | 30.4 |
| openai/gpt-5.2-chat | openai | 1.75 | 14 | 4.2 | 7.875 | 11.55 | 128000 | Not supplied |
| openai/gpt-5.2-codex | openai | 1.75 | 14 | 4.2 | 7.875 | 11.55 | 400000 | 28.5 |
| openai/gpt-5.3-codex | openai | 1.75 | 14 | 4.2 | 7.875 | 11.55 | 400000 | 32.5 |
| openai/gpt-5.4 | openai | 2.5 | 15 | 5 | 8.75 | 12.5 | 1050000 | 39 |
| openai/gpt-4o-2024-05-13 | openai | 5 | 15 | 7 | 10 | 13 | 128000 | 7.3 |
| openai/gpt-5.5 | openai | 5 | 30 | 10 | 17.5 | 25 | 1050000 | 38.4 |
| openai/gpt-chat-latest | openai | 5 | 30 | 10 | 17.5 | 25 | 400000 | Not supplied |
| openai/gpt-4-turbo | openai | 10 | 30 | 14 | 20 | 26 | 128000 | 7 |
| openai/gpt-6-astra | openai | 10 | 50 | 18 | 30 | 42 | 1050000 | 52.7 |
| openai/gpt-6-astra-pro | openai | 10 | 50 | 18 | 30 | 42 | 1050000 | Not supplied |
| openai/o1 | openai | 15 | 60 | 24 | 37.5 | 51 | 200000 | 15.2 |
| openai/o3-pro | openai | 20 | 80 | 32 | 50 | 68 | 200000 | 21.9 |
| openai/gpt-4 | openai | 30 | 60 | 36 | 45 | 54 | 8191 | 6.7 |
| openai/gpt-5-pro | openai | 15 | 120 | 36 | 67.5 | 99 | 400000 | Not supplied |
| openai/gpt-5.2-pro | openai | 21 | 168 | 50.4 | 94.5 | 138.6 | 400000 | Not supplied |
| openai/gpt-5.4-pro | openai | 30 | 180 | 60 | 105 | 150 | 1050000 | Not supplied |
| openai/gpt-5.5-pro | openai | 30 | 180 | 60 | 105 | 150 | 1050000 | Not supplied |
| openai/o1-pro | openai | 150 | 600 | 240 | 375 | 510 | 200000 | 12.4 |
| qwen/qwen3.7-flash | qwen | 0.03 | 0.13 | 0.05 | 0.08 | 0.11 | 1000000 | Not supplied |
| qwen/qwen3.5-flash-02-23 | qwen | 0.065 | 0.26 | 0.104 | 0.1625 | 0.221 | 1000000 | Not supplied |
| qwen/qwen3.5-9b | qwen | 0.1 | 0.15 | 0.11 | 0.125 | 0.14 | 262144 | 13.3 |
| qwen/qwen3-coder-30b-a3b-instruct | qwen | 0.07 | 0.28 | 0.112 | 0.175 | 0.238 | 262144 | 9.6 |
| qwen/qwen-2.5-7b-instruct | qwen | 0.1 | 0.2 | 0.12 | 0.15 | 0.18 | 32768 | Not supplied |
| qwen/qwen3-32b | qwen | 0.08 | 0.28 | 0.12 | 0.18 | 0.24 | 131072 | 8.6 |
| qwen/qwen3-30b-a3b-instruct-2507 | qwen | 0.1 | 0.3 | 0.14 | 0.2 | 0.26 | 262144 | 7.5 |
| qwen/qwen3-14b | qwen | 0.12 | 0.24 | 0.144 | 0.18 | 0.216 | 131072 | 8.2 |
| qwen/qwen3-vl-32b-instruct | qwen | 0.104 | 0.416 | 0.1664 | 0.26 | 0.3536 | 131072 | 11.9 |
| qwen/qwen3-235b-a22b-2507 | qwen | 0.09 | 0.55 | 0.182 | 0.32 | 0.458 | 262144 | 12 |
| qwen/qwen3-8b | qwen | 0.117 | 0.455 | 0.1846 | 0.286 | 0.3874 | 131072 | 7.3 |
| qwen/qwen3-vl-8b-instruct | qwen | 0.117 | 0.455 | 0.1846 | 0.286 | 0.3874 | 262144 | 7.3 |
| qwen/qwen3-30b-a3b | qwen | 0.12 | 0.5 | 0.196 | 0.31 | 0.424 | 131072 | 7.6 |
| qwen/qwen3.8-flash | qwen | 0.15 | 0.47 | 0.214 | 0.31 | 0.406 | 1000000 | Not supplied |
| qwen/qwen3.8-omni-flash | qwen | 0.15 | 0.47 | 0.214 | 0.31 | 0.406 | 1000000 | Not supplied |
| qwen/qwen3.5-35b-a3b | qwen | 0.08 | 0.75 | 0.214 | 0.415 | 0.616 | 262144 | 19.3 |
| qwen/qwen3-vl-30b-a3b-instruct | qwen | 0.15 | 0.6 | 0.24 | 0.375 | 0.51 | 262144 | 7.9 |
| qwen/qwen3-coder-next | qwen | 0.12 | 0.8 | 0.256 | 0.46 | 0.664 | 262144 | 9.2 |
| qwen/qwen3-next-80b-a3b-instruct | qwen | 0.1 | 1.1 | 0.3 | 0.6 | 0.9 | 262144 | 9.6 |
| qwen/qwen3.6-35b-a3b | qwen | 0.15 | 1 | 0.32 | 0.575 | 0.83 | 262144 | 18.2 |
| qwen/qwen3-coder-flash | qwen | 0.195 | 0.975 | 0.351 | 0.585 | 0.819 | 1000000 | Not supplied |
| qwen/qwen3-next-80b-a3b-thinking | qwen | 0.15 | 1.2 | 0.36 | 0.675 | 0.99 | 262144 | 11.2 |
| qwen/qwen-plus | qwen | 0.26 | 0.78 | 0.364 | 0.52 | 0.676 | 1000000 | Not supplied |
| qwen/qwen-plus-2025-07-28 | qwen | 0.26 | 0.78 | 0.364 | 0.52 | 0.676 | 1000000 | Not supplied |
| qwen/qwen-2.5-72b-instruct | qwen | 0.36 | 0.4 | 0.368 | 0.38 | 0.392 | 32768 | 7.7 |
| qwen/qwen3.6-flash | qwen | 0.1875 | 1.125 | 0.375 | 0.65625 | 0.9375 | 1000000 | Not supplied |
| qwen/qwen3-coder | qwen | 0.3 | 1 | 0.44 | 0.65 | 0.86 | 262144 | 11.9 |
| qwen/qwen3.5-27b | qwen | 0.195 | 1.56 | 0.468 | 0.8775 | 1.287 | 262144 | 22.9 |
| qwen/qwen3.7-plus | qwen | 0.32 | 1.28 | 0.512 | 0.8 | 1.088 | 1000000 | 25.2 |
| qwen/qwen3.5-plus-02-15 | qwen | 0.26 | 1.56 | 0.52 | 0.91 | 1.3 | 1000000 | Not supplied |
| qwen/qwen3-vl-235b-a22b-instruct | qwen | 0.21 | 1.9 | 0.548 | 1.055 | 1.562 | 262144 | 9.9 |
| qwen/qwen3-vl-8b-thinking | qwen | 0.18 | 2.1 | 0.564 | 1.14 | 1.716 | 131072 | 8.2 |
| qwen/qwen3.5-plus-20260420 | qwen | 0.3 | 1.8 | 0.6 | 1.05 | 1.5 | 1000000 | Not supplied |
| qwen/qwen3.5-122b-a10b | qwen | 0.26 | 2.08 | 0.624 | 1.17 | 1.716 | 262144 | 17.7 |
| qwen/qwen3-30b-a3b-thinking-2507 | qwen | 0.2 | 2.4 | 0.64 | 1.3 | 1.96 | 81920 | 9.8 |
| qwen/qwen3-vl-30b-a3b-thinking | qwen | 0.2 | 2.4 | 0.64 | 1.3 | 1.96 | 262144 | 9.5 |
| qwen/qwen3-235b-a22b-thinking-2507 | qwen | 0.23 | 2.3 | 0.644 | 1.265 | 1.886 | 131072 | 12.7 |
| qwen/qwen3.6-plus | qwen | 0.325 | 1.95 | 0.65 | 1.1375 | 1.625 | 1000000 | 27 |
| qwen/qwen-2.5-coder-32b-instruct | qwen | 0.66 | 1 | 0.728 | 0.83 | 0.932 | 32768 | 6.7 |
| qwen/qwen3-235b-a22b | qwen | 0.455 | 1.82 | 0.728 | 1.1375 | 1.547 | 131072 | 9.5 |
| qwen/qwen2.5-vl-72b-instruct | qwen | 0.8 | 1 | 0.84 | 0.9 | 0.96 | 128000 | Not supplied |
| qwen/qwen3.8-27b | qwen | 0.425 | 2.55 | 0.85 | 1.4875 | 2.125 | 1000000 | 33.7 |
| qwen/qwen3.6-27b | qwen | 0.32 | 3.25 | 0.906 | 1.785 | 2.664 | 262144 | 21.4 |
| qwen/qwen3.5-397b-a17b | qwen | 0.45 | 3 | 0.96 | 1.725 | 2.49 | 262144 | 21.4 |
| qwen/qwen3-vl-235b-a22b-thinking | qwen | 0.4 | 4 | 1.12 | 2.2 | 3.28 | 131072 | 13.4 |
| qwen/qwen3-coder-plus | qwen | 0.65 | 3.25 | 1.17 | 1.95 | 2.73 | 1000000 | Not supplied |
| qwen/qwen3-max | qwen | 0.78 | 3.9 | 1.404 | 2.34 | 3.276 | 262144 | 15.6 |
| qwen/qwen3-max-thinking | qwen | 0.78 | 3.9 | 1.404 | 2.34 | 3.276 | 262144 | 21.3 |
| qwen/qwen3.6-max-preview | qwen | 1.027 | 6.162 | 2.054 | 3.5945 | 5.135 | 262144 | 28.4 |
| qwen/qwen3.7-max | qwen | 1.475 | 4.425 | 2.065 | 2.95 | 3.835 | 1000000 | 29.5 |
| qwen/qwen3.8-2.4t-a95b | qwen | 2 | 6 | 2.8 | 4 | 5.2 | 1048576 | 39.9 |
| qwen/qwen3.8-max-0902 | qwen | 2 | 6 | 2.8 | 4 | 5.2 | 1000000 | 45.4 |
| qwen/qwen3.8-max-prime | qwen | 4 | 12 | 5.6 | 8 | 10.4 | 1000000 | Not supplied |
| x-ai/grok-build-0.1 | x-ai | 1 | 2 | 1.2 | 1.5 | 1.8 | 256000 | 27.2 |
| x-ai/grok-4.20 | x-ai | 1.25 | 2.5 | 1.5 | 1.875 | 2.25 | 2000000 | 25.7 |
| x-ai/grok-4.20-multi-agent | x-ai | 1.25 | 2.5 | 1.5 | 1.875 | 2.25 | 2000000 | Not supplied |
| x-ai/grok-4.3 | x-ai | 1.25 | 2.5 | 1.5 | 1.875 | 2.25 | 1000000 | 24.9 |
| x-ai/grok-4.5 | x-ai | 2 | 6 | 2.8 | 4 | 5.2 | 500000 | 38.8 |
| x-ai/grok-4.6 | x-ai | 2 | 6 | 2.8 | 4 | 5.2 | 500000 | 44.3 |
| x-ai/grok-4.7 | x-ai | 2 | 6 | 2.8 | 4 | 5.2 | 500000 | 46.4 |
Get the data: Download the 198-row CSV and the original 464-entry API response and reproduction script (ZIP).
Conclusion: budget the workload, then validate the candidate
I found a wide range of listed token costs across 198 OpenRouter entries, with substantial variation inside developer namespaces as well as between their medians. The three token mixes make the budget sensitivity visible without pretending to measure real application behavior. The resulting dataset is useful precisely because its claim is limited: it explains a dated catalog and a reproducible calculation.
My concrete advice is to carry an exact ID into the budget, keep input and output separate, check the current route and terms, and evaluate success on your own task before committing. Use the full appendix rather than a family slogan. Our AI readiness assessment offers the broader organizational check before that commitment. This research supplies the price baseline; deployment readiness and measured value remain work to do.