AI Cost Tracker Calculator — Free LLM Cost Planning Tool
Feature cost ledger
One line per AI feature. Rates are $ per 1M tokens. Free tier: 3 rows, 1 scenario.
| # | Feature | Provider | Model | In tok. | Out tok. | Calls/action | Cache % | Batch? | Reqs/mo | In $/1M | Out $/1M | Cost/req | Cost/mo | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Total monthly AI cost | $0.00 | |||||||||||||
Revenue & margin
Rough gross margin if AI cost is your only variable cost.
Break-even assumes other infra cost stays fixed; the first customer must cover both AI cost and infra.
Budget guardrails
How this product would police its own spend.
Sensitivity
Total monthly cost as request volume and output tokens per request vary.
Cost by feature
Sorted descending, current scenario.
Model swap comparison
What each feature would cost on an alternative model, using the same workload.
Optimization suggestions
Automatic ideas to reduce monthly spend, ranked by savings.
Assumptions & warnings
What this plan is betting on.
Open questions / notes
Anything unresolved goes here.
What Is the AI Cost Tracker Calculator?Free tier
The AI Cost Tracker Calculator is a planning tool that estimates the monthly cost of running AI-powered product features across OpenAI, Anthropic Claude, Google Gemini, Mistral, and other large language model (LLM) providers. The calculator sits on this same page, above or below this guide depending on your Blogger layout.
Instead of waiting for an invoice to discover a runaway feature, you model each feature before launch: input tokens, output tokens, prompt-cache hit rate, batch mode, multi-step agent calls, and monthly request volume. Every figure updates live as you type.
Key User Pain Points — and How This Calculator Solves Them
Every indie developer and small AI product team hits the same wall: a token invoice arrives, and the number is far higher than anyone predicted. The calculator was built around seven specific failure modes.
| Pain point | How the calculator solves it |
|---|---|
| "I can't estimate cost before I ship." | Model each feature's tokens, calls, and volume in the ledger, before writing a single API call. |
| "I don't know what prompt caching actually saves." | The Cache % column discounts cached input tokens to 10% of the normal rate, so you see the dollar impact immediately. |
| "My agent workflow cost 5× what I planned." | The Calls/action column multiplies cost per call by the number of LLM round-trips a single user action triggers. |
| "I don't know which model to use." | The Model swap comparison ranks your top features against four alternative models and shows the delta in dollars and percent. |
| "I found out I was over budget after the invoice." | The Budget guardrails panel projects month-end spend, days until budget hit, and daily burn rate. |
| "I don't know if my plan is profitable." | The Revenue & margin panel computes AI cost per customer and break-even customer count against your plan price. |
| "I don't know what to fix first." | The Optimization suggestions panel ranks fixes by dollar savings. |
Units and Terminology
LLM pricing is quoted in US dollars per one million tokens. Every rate you enter follows that convention. Token counts are per call, not per month.
| Field | Unit | Typical range | Notes |
|---|---|---|---|
| Input tokens | tokens/call | 200 – 32,000 | Everything you send: system prompt, context, user message |
| Output tokens | tokens/call | 50 – 4,000 | The model's reply |
| Calls per action | calls/action | 1 – 20 | 1 for simple chat; 5–15 for agent workflows |
| Cache % | % of input | 0 – 90 | Fraction of input tokens served from a prompt cache |
| Batch? | on/off | — | Applies a 50% discount when the provider supports batch mode |
| User actions per month | actions/mo | 100 – 10,000,000 | Requests, generations, or workflows triggered by users |
| Input rate | USD / 1M tokens | 0.075 – 15.00 | Provider-published price for input |
| Output rate | USD / 1M tokens | 0.30 – 75.00 | Typically 3–5× input |
| Plan price | USD / month | 5 – 200 | What each paying customer pays you |
| Budget cap | USD / month | 50 – 100,000 | Maximum acceptable AI spend |
| Volume multiplier | multiplier | 0.5 – 4 | Applied to every row's request count |
| Day of month | day | 1 – 31 | Used to compute burn rate and month-end projection |
Step-by-Step User Guide
Follow these twelve steps in order. The calculator recalculates every panel after each change — nothing needs to be saved manually, and your work persists across browser sessions.
- Open the calculator and pick your segment.
Use the Target customer dropdown to select your context: solo indie developer, small AI product team, agency, or internal team. This is a labeling convenience — it does not change the math.
- Choose integration mode.
Select Proxy, SDK wrapper, or Both. This documents how you plan to instrument cost tracking. It does not affect the calculation.
- Set your currency (optional).
Choose USD, EUR, GBP, INR, AUD, or CAD. When you pick a non-USD currency, an editable exchange-rate field appears. Every money figure in the calculator converts live.
- Configure the volume multiplier.
The Volume dropdown multiplies every row's request count by
0.5×(Low),1×(Base),2×(High), or4×(Spike). - Add each AI feature to the ledger.
Click + Add feature. Enter a descriptive name. Each row is independent — one feature per row. Rows are auto-numbered 01, 02, 03.
- Pick a provider and model.
Choose the provider from the dropdown (Anthropic, OpenAI, Google, Mistral, Other), then type the model name. Or use the toolbar's Preset picker to auto-fill the model name and both rates in one click. Presets apply to the last row you focused and never overwrite your token or volume entries.
- Enter input and output tokens.
These are per-call averages, not monthly totals.
- Set calls per action.
For a simple chat, leave this at
1. For an agent that does plan → search → summarize, enter3or5. Every extra call multiplies the row's cost. - Enter cache % and batch mode.
If your prompts repeat the same instructions across calls, both Anthropic and OpenAI offer prompt caching. Enter the fraction you expect to hit (
0–90). Enable the Batch? checkbox only if a delay of hours is acceptable — it applies a 50% discount to the whole row. - Enter monthly request volume.
How many times per month does one user trigger this feature? Multiply by the number of active users to get the row's Reqs/mo.
- Enter the provider's published rates.
Both In $/1M and Out $/1M come from the provider's pricing page. The presets give you editable starting points — verify against the source before finalizing.
- Fill in revenue, budget, and read the outputs.
Enter Plan price, Paying customers, and Other infra cost. Enter Monthly budget cap, Alert threshold %, and Current day of month. The sidebar, sensitivity table, chart, model swap comparison, and optimization suggestions all update instantly.
Complete Feature Reference — Every Field, Button, and Output
This section documents every element of the calculator. Use it as a map when you're looking for a specific control or want to understand what an output means.
The Ledger — Input Columns
The main table on the calculator is called the ledger. Each row represents one AI feature. Columns, in order:
| Column | Input type | What it means | Default |
|---|---|---|---|
| # | auto | Row number, auto-assigned and renumbered when rows are removed | 01, 02, 03… |
| Feature | text | Descriptive name for the feature ("Chat assistant", "Invoice parser") | empty |
| Provider | dropdown | Anthropic, OpenAI, Google, Mistral, or Other | Anthropic |
| Model | text | Model name as you'd write it in the API call | empty |
| In tok. | number | Input tokens per LLM call | 0 |
| Out tok. | number | Output tokens per LLM call | 0 |
| Calls/action | number | Number of LLM round-trips per user action (agents often use 3–5) | 1 |
| Cache % | number | Fraction of input tokens served from a prompt cache | 0 |
| Batch? | checkbox | Applies a 50% discount when enabled | unchecked |
| Reqs/mo | number | User actions per month for this feature | 0 |
| In $/1M | number | Input rate in USD per one million tokens | 0 |
| Out $/1M | number | Output rate in USD per one million tokens | 0 |
| Cost/req | auto | Computed cost per individual LLM call | — |
| Cost/mo | auto | Computed monthly cost for this row (after calls/action and volume multiplier) | — |
| × | button | Removes the row | — |
The footer row of the ledger shows Total monthly AI cost — the sum of every row's Cost/mo.
Free-tier cap
Free users can add up to 3 rows. The + Add feature button disables at that point, and a note appears below the button explaining the limit.
The Toolbar — Controls
Above the ledger sits the toolbar. Left to right:
| Control | What it does |
|---|---|
| Volume dropdown | Multiplies every row's requests by 0.5×, 1×, 2×, or 4×. Base is 1×. Choose High or Spike to stress-test the plan under heavier traffic without retyping numbers. A custom value persists if you load a saved plan that used one. |
| Preset picker | Dropdown grouped by provider. Selecting a model fills the last-focused row's provider, model, in-rate, and out-rate. Never touches your tokens, calls per action, cache, or volume. |
| Export JSON | Downloads the entire plan (all scenarios, all rows, currency, revenue, budget, notes) as a `.json` file. Use for backup or to move the plan to another browser. |
| Import JSON | Reads a previously-exported file and replaces the current plan. Respects your tier's scenario limit. |
| Print / PDF | Opens the browser print dialog with a print-specific layout: controls hidden, inputs flattened, summary preserved. Save as PDF or send to a physical printer. |
| Copy CSV | Copies the current ledger as comma-separated values to your clipboard. Suitable for pasting into Excel, Google Sheets, or Numbers. Includes all columns plus a TOTAL row. |
Scenario Tabs
Below the toolbar sits a row of tabs. Each tab is an independent ledger with its own rows. Use scenarios to model different pricing tiers (Free/Pro/Team), different models, or different growth assumptions side by side.
| Action | How |
|---|---|
| Add a scenario | Click the + tab at the end of the row. Free tier: 1 scenario total; Pro: 3; Team: 6. When you copy a scenario, it inherits the current rows as a starting point. |
| Switch scenario | Click any tab. The ledger and all outputs refresh to reflect that scenario's rows. |
| Rename scenario | Double-click the tab. A prompt asks for the new name (max 40 characters). |
| Close scenario | Click the × on a tab. At least one scenario must remain. |
| Current scenario | Highlighted in a lighter background. Its name also appears next to the "Feature cost ledger" heading. |
Revenue & Margin Panel
Below the ledger, this section ties cost to what customers pay.
Inputs in this panel: Plan price, Paying customers, Other infra cost. Outputs:
- Monthly revenue = plan price × paying customers
- Total variable cost = total AI cost + other infra cost
- Gross margin = margin percentage, or — when revenue is zero
- AI cost per customer = total monthly AI cost ÷ paying customers
- Break-even customers = ⌈ variable cost ÷ plan price ⌉
Budget Guardrails Panel
Sets a spending ceiling and projects where you'll land.
| Field | What it does |
|---|---|
| Monthly budget cap | The maximum acceptable AI spend. Drives the budget status pill and the burn bar in the sidebar. |
| Alert threshold % | When total cost crosses this fraction of the cap, the sidebar shows "near threshold" in amber. Default 80%. |
| Notification channel | Documentation field. Email, Slack, Webhook, or In-app only. Recorded in the plan but doesn't trigger real notifications from a planning tool. |
| Enforcement mode | Documentation field. Alert only, Block requests, Route to fallback model, or Require approval. Recorded for use when you build the real system. |
| Current day of month | The day the plan was last updated. Used to compute daily burn rate and month-end projection. |
Outputs:
- Month-end projection = burn rate per day × 30
- Days until budget hit = remaining budget ÷ daily burn rate
- Burn rate = total monthly cost ÷ day of month
Sensitivity Panel
A heat-mapped grid showing total cost across combinations of request volume and output-token length.
| Axis | Values | Meaning |
|---|---|---|
| Columns (Reqs ×) | 0.5, 1, 2, 4 | Request multiplier applied to every row |
| Rows (Out tok ×) | 0.5, 1, 2 | Output-token multiplier applied to every row |
| Cell color | Green / Amber / Red | Relative to the grid's own minimum and maximum, not the budget cap. Green = cheapest cell; Red = most expensive. |
Cost by Feature Chart
A horizontal bar chart, sorted descending by monthly cost. Up to 8 features shown. Bars scale to the highest-cost row, so you can see relative weight at a glance. Values are printed next to each bar in compact form (e.g. $76.80, $1.2k).
Model Swap Comparison
Compares your top three most expensive features against four alternative models:
- Claude Sonnet ($3 / $15 per 1M)
- Claude Haiku ($0.80 / $4 per 1M)
- GPT-4.1 mini ($0.40 / $1.60 per 1M)
- Gemini 1.5 Flash ($0.075 / $0.30 per 1M)
Each cell shows the alternative monthly cost, the dollar delta, and the percentage change. Green cells mean cheaper; red cells mean more expensive. The comparison uses your exact row settings (tokens, calls per action, cache %, batch), and only swaps in the alternative model's rates.
Optimization Suggestions Panel
An automatic list of ways to reduce monthly spend, ranked by dollar savings. Up to five suggestions shown. Each suggestion covers a specific row and quantifies the saving. Categories:
- Cheaper same-provider model — e.g. Claude Sonnet → Claude Haiku on one row
- Enable prompt caching — assumes 80% cache hit rate for the calculation
- Move to Batch API — assumes 50% discount
- Reduce output tokens by ~50% — suggests tighter prompts or max_tokens caps
- Consolidate multi-call workflows — suggests dropping one round-trip per action
The total of all suggestions appears in the sidebar as Possible savings.
Assumptions & Warnings
Two stacked blocks. Warnings lists automatic flags raised by your current inputs. Assumptions lists the planning assumptions with confidence chips.
Warning conditions:
- Rate above $500 per 1M tokens on any row
- Token count above 500,000 per call
- Request volume above 10M per month
- Row with zero requests but non-zero tokens
- Multi-call workflow combined with high cache %
- AI cost per customer exceeding plan price (red error)
- Negative gross margin (red error) or below 20% (amber warning)
Assumption rows include total requests/month, total LLM calls/month, total input and output tokens/month, rows on Batch API, average cache hit rate, providers in use, active scenario, volume multiplier, currency and rate, and how rates were sourced. Each row shows a high, medium, or low confidence chip.
Summary
The right-hand panel (or stacked below on mobile) shows at-a-glance totals:
Below the readouts:
- Costliest features — top 5 by monthly cost with percentage of total
- Budget burn bar — visual fill showing percentage of cap used, color-coded green/amber/red
- Copy full plan button — premium (Pro/Team) feature. Copies a plain-text summary including all formulas, per-feature lines, revenue and margin, budget guardrails, and optimization suggestions.
- Clear ledger button — resets the active scenario to default rows after a confirmation prompt
Scenarios, Currency, and Persistence
Scenarios: Each tab in the scenario bar is an independent ledger. Add up to 1 (Free), 3 (Pro), or 6 (Team). Rename by double-clicking a tab. Close with the × icon. Switching tabs swaps the entire ledger and all outputs.
Currency: Pick from USD, EUR, GBP, INR, AUD, or CAD. All money readouts convert using a fixed default rate table (EUR at 0.92, GBP at 0.79, INR at 83.5, AUD at 1.52, CAD at 1.36). Non-USD options reveal an editable rate field so you can match your bank's rate. The rate you set is saved with the plan.
Persistence: Every change is saved automatically to your browser's localStorage. Closing the tab and reopening restores the plan exactly. Clearing browser data for the site will wipe the plan — use Export JSON for a portable backup. Use Import JSON to restore or transfer the plan to another device.
Shareable links: The calculator exposes a helper that encodes the plan into the URL hash (#plan=...). Opening a link with that hash loads the encoded plan. Anyone with the link sees the same state, which is useful for sharing a scenario with a teammate or saving a snapshot to bookmarks.
Design Preset Rates (Editable Starting Points)
The preset picker uses the following rates. They are starting points, not live quotes. Edit them in the ledger after applying, or verify against the provider's current pricing page.
| Provider | Model | In $/1M | Out $/1M |
|---|---|---|---|
| Anthropic | Claude Opus | 15.00 | 75.00 |
| Anthropic | Claude Sonnet | 3.00 | 15.00 |
| Anthropic | Claude Haiku | 0.80 | 4.00 |
| OpenAI | GPT-4o | 2.50 | 10.00 |
| OpenAI | GPT-4o mini | 0.15 | 0.60 |
| OpenAI | GPT-4.1 mini | 0.40 | 1.60 |
| OpenAI | o3-mini | 1.10 | 4.40 |
| Gemini 1.5 Pro | 1.25 | 5.00 | |
| Gemini 1.5 Flash | 0.075 | 0.30 | |
| Mistral | Mistral Large | 2.00 | 6.00 |
| Mistral | Mistral Small | 0.20 | 0.60 |
Free vs Pro vs Team — What Each Plan Unlocks
Every formula in this guide is free to read and understand. The table below shows what changes when you upgrade to the interactive ledger.
| Feature | Free | Pro ($19) | Team ($49) |
|---|---|---|---|
| Read this guide | ✓ | ✓ | ✓ |
| Copy the plain-text summary | ✓ | ✓ | ✓ |
| Feature rows in ledger | 3 | Unlimited | Unlimited |
| Scenarios | 1 | 3 | 6 |
| Calls/action & batch columns | ✓ | ✓ | ✓ |
| Model swap comparison | ✓ | ✓ | ✓ |
| Sensitivity grid | ✓ | ✓ | ✓ |
| Optimization suggestions engine | Preview | ✓ | ✓ |
| Copy CSV export | ✓ | ✓ | ✓ |
| JSON import / export | ✓ | ✓ | ✓ |
| Print / PDF export | ✓ | ✓ | ✓ |
| Copy full plan (plain text with formulas) | — | ✓ | ✓ |
| Shareable plan links | — | — | ✓ |
| Priority email support | — | — | ✓ |
Every feature in the guide is visible to every tier. Pro and Team simply unlock higher caps and additional export formats inside the interactive calculator.
Every Formula Used to Calculate Results
The calculator uses twelve formulas. All rates are entered in USD per 1,000,000 tokens. All costs come out in USD, then convert to your chosen currency for display. Every formula below is shown in full — nothing is hidden.
1. Effective Input Rate (After Caching)
effectiveInRate = inRate × ( (1 − cacheFraction) + (cacheFraction × 0.10) )Where cacheFraction = cache% ÷ 100. Cached input tokens cost approximately 10% of the standard rate.
Example: at inRate = $3.00 and cache% = 80:
effectiveInRate = 3.00 × (0.20 + 0.80 × 0.10) = 3.00 × 0.28 = $0.84 per 1M tokens2. Cost Per LLM Call
costPerCall = (inTok ÷ 1,000,000 × effectiveInRate) + (outTok ÷ 1,000,000 × outRate)costPerCall = costPerCall × 0.5 (batch only)3. Row Cost Per User Action
costPerAction = costPerCall × callsPerAction4. Row Monthly Cost
rowMonthlyCost = costPerAction × reqsPerMonth × volumeMultiplier5. Total Monthly AI Cost
totalMonthlyCost = Σ rowMonthlyCost over all features6. Cost Per Customer
costPerCustomer = totalMonthlyCost ÷ payingCustomers7. Gross Margin
revenue = planPrice × payingCustomersvariableCost = totalMonthlyCost + otherInfraCostgrossMargin% = ( (revenue − variableCost) ÷ revenue ) × 1008. Break-Even Customers
breakEvenCustomers = ⌈ variableCost ÷ planPrice ⌉9. Budget Projection, Burn Rate, and Days to Budget
burnRatePerDay = totalMonthlyCost ÷ dayOfMonthmonthEndProjection = burnRatePerDay × 30daysToBudget = ⌊ (budgetCap − totalMonthlyCost) ÷ burnRatePerDay ⌋10. Sensitivity Grid
For each combination of request multiplier rm ∈ {0.5, 1, 2, 4} and output-token multiplier om ∈ {0.5, 1, 2}:
cellCost = Σ rowCost( row with outTok × om, volumeMultiplier × rm )Cells are shaded green, amber, or red based on position between the grid's minimum and maximum.
11. Model Swap Comparison
altCost = rowCost( row with alternative inRate and outRate )delta = altCost − currentCostdeltaPct = (delta ÷ currentCost) × 100The interactive calculator applies these against four alternative models — Claude Sonnet, Claude Haiku, GPT-4.1 mini, and Gemini 1.5 Flash — using your exact row inputs (tokens, calls per action, cache %, and batch setting).
12. Optimization Suggestion Values
Each suggestion computes a hypothetical alternative and reports the saving:
saving = currentRowCost − alternativeRowCostSuggestions are sorted by saving descending; the top five are shown, covering: model swap, prompt caching, batch API, output-token reduction, and multi-call workflow consolidation.
Worked Example — Chat Assistant on Claude Sonnet
Scenario
You run a customer-facing chat assistant powered by Claude Sonnet. The system prompt and conversation history average 1,200 input tokens per call and the model replies with 400 output tokens. You have 8,000 user actions per month, one LLM call per action, no caching, no batch. Claude Sonnet is published at $3 / 1M input and $15 / 1M output.
Step 1 — Effective input rate
cache% = 0, so the effective rate equals the posted rate: $3.00 per 1M tokens.
Step 2 — Cost per call
(1200 ÷ 1,000,000 × 3.00) + (400 ÷ 1,000,000 × 15.00)= 0.0036 + 0.0060 = $0.0096 per callStep 3 — Cost per action
callsPerAction = 1, so cost per action = $0.0096.
Step 4 — Monthly cost
0.0096 × 8,000 × 1 = $76.80 / monthStep 5 — What if you enable 80% caching?
effectiveInRate = 3.00 × (0.20 + 0.80 × 0.10) = $0.84 / 1McostPerCall = (1200 ÷ 1e6 × 0.84) + (400 ÷ 1e6 × 15) = $0.007008monthly = 0.007008 × 8,000 = $56.06 / monthSaving: $76.80 − $56.06 = $20.74/month (a 27% reduction).
Step 6 — What if you also switch to Claude Haiku?
effectiveInRate = 0.80 × 0.28 = $0.224 / 1McostPerCall = (1200 ÷ 1e6 × 0.224) + (400 ÷ 1e6 × 4.00) = $0.0018688monthly = 0.0018688 × 8,000 = $14.95 / monthTotal saving vs. original: $76.80 − $14.95 = $61.85/month (81%).
Step 7 — Margin check
At $19/mo and 40 customers, revenue is $760. AI cost is $76.80, plus $60 other infra = $136.80 variable. Gross margin = 82.0%. Break-even customers = ⌈136.80 ÷ 19⌉ = 8.
Visual — How Cost Flows Through the Calculator
Want a live version of this workflow? The interactive calculator on this page lets you model agent workflows, batch pricing, and prompt caching in real time.
What Is This Calculation Used For?
Per-feature AI cost estimation is used to answer six recurring questions during product planning.
Pricing decisions
If the AI cost per customer exceeds the monthly plan price, the product loses money on every user.
Feature feasibility
Some features are economically viable only on a cheaper model. The Model swap comparison tells you whether switching models turns an unprofitable feature into a profitable one.
Budget planning
Founders and finance teams set a monthly AI spend ceiling. The Budget guardrails panel projects month-end total and shows when the cap will be hit.
Engineering trade-offs
Prompt caching, batch mode, and output-length reduction are the three biggest levers. The Optimization suggestions panel quantifies each one.
Investor and stakeholder reporting
The Copy full plan and Export JSON buttons produce a portable summary of the assumptions and outputs.
Post-launch re-forecasting
When real usage data comes in, update the tokens and request counts to compare actual vs. plan.
Common Mistakes
These are the ten most frequent input errors. Each one is easy to make and produces a materially wrong result.
| Mistake | What goes wrong | Fix |
|---|---|---|
| Entering monthly tokens instead of per-call tokens | Inflation by orders of magnitude | Tokens are per call. Monthly tokens go only as a count of actions. |
| Forgetting calls per action on agent workflows | Underestimates by 3–10× | If a user action triggers plan, search, and summarise steps, set callsPerAction = 3. |
| Assuming 100% cache hit rate | Over-optimistic by 10× on input cost | 80% is aggressive. 40–60% is realistic. |
| Enabling batch mode for latency-sensitive features | 50% saving, but responses arrive in hours | Only enable batch for async tasks. |
| Using rates from memory | 10–30% errors vs. current pricing | Always copy the provider's published rates on the day you plan. |
| Ignoring other infra costs | Overstates gross margin | Include hosting, database, storage in Other infra cost. |
| Setting plan price equal to AI cost | Zero margin after other costs | Aim for AI cost ≤ 20% of plan price. |
| Running a single scenario only | Misses growth and stress cases | Use the Volume dropdown to test 0.5×, 1×, 2×, and 4× traffic. |
| Confusing user actions with API calls | Undercount by the workflow depth | User actions are clicks. API calls are what your code sends. |
| Assuming input and output rates are the same | Output typically costs 3–5× more | Enter each rate separately. |
Accuracy Note — Read Before Relying on Results
These figures are planning estimates, not billing quotes. Every number is calculated from values you enter yourself. The calculator does not connect to any provider API, does not read your usage logs, and does not fetch live pricing.
Where accuracy is high
The arithmetic is deterministic. If your inputs match reality, the outputs will match your invoice to within rounding.
Where accuracy drops
- Token estimates: real prompts vary per user. Use median values.
- Cache hit rate: depends on prompt repetition. Verify with a small sample before scaling.
- Model pricing: providers change rates frequently. Re-verify before each planning cycle.
- Batch discount: assumed at 50% across providers.
- Cached token discount: assumed at 90% off.
- Currency rates: fixed defaults, editable in the UI. Not live FX.
Validation built into the calculator
- Rates above $500/1M tokens trigger a warning.
- Token counts above 500,000 per call trigger a warning.
- Request volumes above 10M/month trigger a warning.
- Rows with zero requests but non-zero tokens trigger a warning.
- Cost per customer exceeding plan price triggers a red error.
- Negative or sub-20% gross margin triggers a warning or error.
Backup and recovery
The calculator saves automatically to your browser's localStorage. Clearing site data (or using a private browsing window that closes) will wipe the plan. Use Export JSON after each major session for a portable backup you can Import JSON later.
Real-World Usage
Indie SaaS founder preparing a launch
Before launching a chat assistant, estimate cost at 50, 200, and 1,000 users. Check that break-even customers stays below your growth plan.
Agency scoping a client AI feature
Model each deliverable as a row, apply a 2× volume multiplier for peak months, and export the JSON to attach to a proposal.
Small product team evaluating a model migration
Use the Model swap comparison to see the delta between your current model and three alternatives.
Internal platform team planning budget
Model each internal AI service as a row, enter the company-wide budget cap, and use Days until budget hit to set an enforcement trigger.
Consultant preparing an AI cost audit
Recreate the client's current setup, then flip the cache %, batch, and model settings one at a time.
Copy a summary of this guide. The button below produces a plain-text plan summary with all formulas and the worked example, ready for email, proposals, or Notion.
Frequently Asked Questions
What does "1M tokens" mean, and why is pricing quoted that way?
Providers publish rates per one million tokens because per-token costs are fractions of a cent. $3 per 1M tokens means each token costs $0.000003. Working in millions keeps the numbers readable.
Is the calculator connected to my provider account?
No. It is a standalone planning tool. You enter token counts, rates, and volumes by hand. Nothing is sent to OpenAI, Anthropic, Google, or any other provider. Your inputs are stored only in your own browser's localStorage.
How accurate is the prompt-cache assumption?
The calculator assumes cached input tokens cost 10% of the normal rate, matching Anthropic's and OpenAI's published cache-read pricing.
Why is the batch discount exactly 50%?
OpenAI publishes a 50% discount for the Batch API. Other providers offer 25–50%. The calculator uses 50% as a conservative estimate.
What is "calls per action" and when should I change it?
A user action is what a person triggers. A call is what your code sends to the LLM. Simple chat is 1 call per action. An agent that plans, searches, and summarises is 3–5 calls per action.
Can I model multiple pricing tiers (Free / Pro / Team)?
Yes — create one scenario per tier using the scenario tabs. Each scenario keeps its own ledger. Free tier allows 1 scenario, Pro 3, Team 6.
How do I rename or delete a scenario?
Double-click a tab to rename it (max 40 characters). Click the × on the tab to close it. At least one scenario must remain.
What happens to my data if I close the browser?
Everything is saved automatically to your browser's localStorage. Reopening the calculator restores the plan. Use Export JSON for a portable backup.
Does it support currencies other than USD?
Yes. Choose USD, EUR, GBP, INR, AUD, or CAD. When you pick a non-USD option, an editable exchange-rate field appears so you can use your bank's rate instead of the default.
What if cost per customer exceeds plan price?
The calculator shows a red error in the Warnings panel. Fix it by raising the plan price, reducing tokens, enabling caching or batch, or moving to a cheaper model.
Does the model swap comparison use my workload or typical defaults?
It uses your actual row inputs — the same tokens, calls per action, cache percentage, and batch setting. Only the input and output rates change.
Can I export the plan to Excel or PDF?
Yes. Copy CSV produces a spreadsheet-ready table. Print / PDF opens your browser's print dialog. Copy full plan produces a plain-text summary suitable for email or a proposal.
What does the "Possible savings" figure in the sidebar mean?
It totals the dollar savings across all optimization suggestions for the active scenario. It represents the theoretical maximum if you adopted every suggestion at once.
Why is a warning shown for a multi-call workflow combined with high cache %?
Cache hits often only apply to the first call of a workflow. If a later step changes the prompt, its input isn't cacheable. The warning prompts you to verify your cache hit rate assumption.
Are the preset model rates updated automatically?
No. Presets are editable starting points. Always verify against the provider's current pricing page.
What does the sensitivity table tell me?
It shows the same plan at four request volumes (0.5×, 1×, 2×, 4×) crossed with three output-token lengths (0.5×, 1×, 2×). Cells shade green, amber, or red relative to the grid's own min and max.
How do I move my license to another device?
Open the calculator on the new device and sign in with the same email you used at checkout. If you hit a device limit, sign out on the old device first. If you can't access the original email, contact support with your Gumroad receipt.
Do you store or sell my usage data?
No. The calculator has no backend. All processing happens in your browser. The only outbound requests are the license verification call to Gumroad and, if configured, anonymous event logging.
Plans — For Readers Who Want the Interactive Calculator
Optional upgrade
This guide is complete and free. If you'd like the interactive version with a live ledger, model swap engine, and one-click export, the plans below unlock it. Every formula shown above works in the free preview too.
- Unlimited features in the interactive ledger
- Up to 3 scenarios
- Calls-per-action & batch columns
- Model swap comparison engine
- Sensitivity grid & charts
- Copy CSV & JSON export
- Print / PDF report
- Everything in Pro
- Up to 6 scenarios
- Shareable plan links
- Optimization suggestions engine
- Priority email support
Not ready to buy? Start a 7-day Pro trial — no payment required.
Next Steps
Load your three most expensive features into the interactive ledger, run the sensitivity table at 2× volume, and open the optimization suggestions panel. Those three actions typically surface 20–40% of recoverable spend in the first planning session.
Everything in this guide is free to read and copy. If the interactive calculator saves you a planning cycle, the plans above cover the cost.
Last reviewed for clarity and accuracy. Rates and provider capabilities change frequently — verify before relying on the output for decisions.