Skip to the page
Tecyfy

LLM cost calculator

Say what 1 run of your job reads and writes and how often it runs. See what it costs on every current model, a run, a day, a month or a year, or start from your budget and see which models fit it.

The calculator

The job

A short question and a few paragraphs back.

tokens

about 230 words

tokens

about 380 words

a day
Morecache, thinking, several turns, batch
0%

Text sent again unchanged costs the cached price.

tokens
tokens

For a task of several turns, such as an agent. Only this part has to fit in the window.

The answer

Cheapest: Qwen3.8-Flash at 84 cents a month. Dearest: Claude Fable 5.1 at $84.00, 100 times as much.

84 centsQwen3.8-Flash$84.00Claude Fable 5.1
Maker

The bill, cheapest first · a month

  • Input
  • Cached input
  • Output
  • Thinking
  1. Qwen3.8-FlashAlibaba

    84 cents

    0.028 cents a run

  2. GPT-6 LunaOpenAI

    84 cents

    0.028 cents a run

  3. Claude Haiku 5.5Anthropic

    84 cents

    0.028 cents a run

  4. DeepSeek V4.1 FlashDeepSeek

    $2.07

    0.069 cents a run

  5. Gemini 3.5 Flash-LiteGoogle

    $4.02

    0.13 cents a run

  6. Gemini 3.8 FlashGoogle

    $6.30

    0.21 cents a run

  7. DeepSeek V4 ProDeepSeek

    $7.13

    0.24 cents a run

  8. Grok 4.7xAI

    $10.80

    0.36 cents a run

  9. Qwen3.8-MaxAlibaba

    $10.80

    0.36 cents a run

  10. GPT-6.1 SolOpenAI

    $16.80

    0.56 cents a run

List prices, no discounts. A month is 30 days. Where a maker publishes no cached price, cached input is charged as input.

What each current AI model costs, per job

Every current model still sold, cheapest first by a blend of 3 input tokens to 1 output token. The jobs are the calculator's own: 1,000 chat questions of 300 tokens in and 500 out, one 60,000-token report summarised in a page, and a 40-turn agent task with 90% of its input read from cache, all at the standard price.

What each current AI model costs, per job
ModelMakerInput per 1M tokensOutput per 1M tokens1,000 chat questionsA long reportA 40-turn agent task
Claude Haiku 5.5Anthropic$0.10$0.5028 cents0.7 cents7.3 cents
GPT-6 LunaOpenAI$0.10$0.5028 cents0.7 cents7.3 cents
Qwen3.8-FlashAlibaba$0.15$0.4728 cents0.99 cents10 cents
DeepSeek V4.1 FlashDeepSeek$0.30$1.2069 cents2 cents15 cents
Gemini 3.5 Flash-LiteGoogle$0.30$2.50$1.342.3 cents26 cents
Gemini 3.8 FlashGoogle$0.75$3.75$2.105.3 cents55 cents
DeepSeek V4 ProDeepSeek$1.32$3.96$2.388.7 cents64 cents
Grok 4.7xAI$2$6$3.6013 cents$2.06
Qwen3.8-MaxAlibaba$2$6$3.6013 cents$1.43
Claude Sonnet 5.5Anthropic$2$10$5.6014 cents$1.21
Gemini 4 ArgonGoogle$2$10$5.6014 cents$1.21
GPT-6.1 SolOpenAI$2$10$5.6014 cents$1.21
Kimi K3.1 ProMoonshot AI$2$10$5.6014 cents$1.46
Claude Opus 5.5Anthropic$4$20$11.2028 cents$2.42
Claude Fable 5.1Anthropic$10$50$28.0070 cents$5.43
GPT-6 AstraOpenAI$10$50$28.0070 cents$7.32

The figures are worked out from the makers' price pages each time the site is built. Open a model for its batch and cached prices, or change any job above to your own.

What common jobs cost a month

Each job at the runs a day it starts with, priced on the cheapest and the dearest of the newest models whose window holds it. The gap is the point: choosing the model moves the bill more than anything else you do.

  • A chat question

    100 runs a day

    From
    84 cents on Qwen3.8-Flash
    Up to
    $84.00 on Claude Fable 5.1
    Change it to yours
  • A hard question, with thinking

    100 runs a day

    From
    $2.11 on Qwen3.8-Flash
    Up to
    $219 on Claude Fable 5.1
    Change it to yours
  • A long report, summarised

    20 runs a day

    From
    $4.20 on GPT-6 Luna
    Up to
    $420 on Claude Fable 5.1
    Change it to yours
  • A 40-turn agent task

    10 runs a day

    From
    $21.96 on GPT-6 Luna
    Up to
    $2,196 on GPT-6 Astra
    Change it to yours
  • A support bot's reply

    2,000 runs a day

    From
    $22.20 on GPT-6 Luna
    Up to
    $2,220 on GPT-6 Astra
    Change it to yours
  • Sort a message into a category

    50,000 runs a day

    From
    $41.25 on GPT-6 Luna
    Up to
    $4,125 on Claude Fable 5.1
    Change it to yours
  • Read an invoice into fields

    1,000 runs a day

    From
    $8.25 on GPT-6 Luna
    Up to
    $825 on Claude Fable 5.1
    Change it to yours
  • Review a pull request

    50 runs a day

    From
    $7.13 on GPT-6 Luna
    Up to
    $713 on Claude Fable 5.1
    Change it to yours

How the sum works

A model is paid by the token, and every maker prints its prices for 1 million of them. One run of a job has 4 parts, each with its own price: the input the model reads for the first time, the input it reads again from its cache, the answer it writes, and the thinking it does before the answer. Thinking is billed at the output price even though you never read it.

The calculator multiplies each part by the model's price, adds them up for 1 run, then multiplies by the runs a day or a month. A month is 30 days. With "Answers can wait" it uses the batch price on the models that publish one.

A model whose window is too small for the largest prompt you send at once is greyed out, not hidden, so you can see what it would have cost. For a task of several turns, such as an agent, that largest prompt is far smaller than the total read across the turns.

It leaves out the first write to a cache (dearer than input on some models), tools such as web search, pictures and sound, and any discount agreed with a maker. If a figure here and the maker's page disagree, the maker's page is right.

Questions

How do I work out what an LLM API will cost me?
Count the tokens 1 run of your job reads and writes, multiply each by its price per million tokens, then multiply by the runs. Input, cached input, output and thinking each have their own price, and thinking is billed as output. The calculator does the sums for every current model at once.
How many tokens is a word or a page?
In English a token is about three quarters of a word, so 1,000 words is about 1,330 tokens and a page of 500 words about 670. Code and other languages take more tokens per word. Switch the calculator to words or pages and it converts for you.
Why does the same job cost so much more on some models?
Prices per token differ by a hundred times or more between the cheapest and the dearest model, and writing costs several times as much as reading. A short chat question asked 100 times a day costs 84 cents a month on Qwen3.8-Flash and $84.00 on Claude Fable 5.1.
What is a batch price?
A lower price, often half, for requests that can wait: you send them together and collect the answers later, within a day. Tick "Answers can wait" and the calculator uses it on every model that has one.
Does a cache really lower the bill?
Yes, when the model reads the same text again: a long system prompt, a document you ask about several times, or an agent sending its conversation on each turn. Cached input costs a fraction of the input price. Set the share of input read from cache with the slider, or see when a cache pays off for your traffic with the prompt caching calculator.

Put this calculator on your own site

Copy the code into any web page: a blog post, a course page or your team's wiki. The calculator runs in a frame and shows the same figures as this page, so when the prices change here they change on your page too. It is free and needs no account, and nothing a reader types is sent anywhere.

The code opens the calculator with the settings you have chosen above.

The short script at the end lets the frame grow and shrink with the calculator. Where a page cannot take scripts, choose a fixed height and the frame scrolls.

<iframe src="https://tecyfy.com/embed/cost-calculator" title="Cost calculator" width="100%" height="3250" style="border:0;display:block" loading="lazy" allow="clipboard-write"></iframe>
<p><a href="https://tecyfy.com/prices/cost-calculator">Cost calculator</a> by Tecyfy</p>
<script>addEventListener("message",function(e){if(e.origin!=="https://tecyfy.com"||!e.data||e.data.type!=="tecyfy:height")return;var h=Number(e.data.height);if(!(h>0))return;document.querySelectorAll("iframe").forEach(function(f){if(f.contentWindow===e.source)f.style.height=Math.min(h,20000)+"px"})})</script>