Price an AI SaaS from the cost of one active user: tokens per request times requests per month, plus Stripe’s fee on each charge, plus a share of your infra. Then set the seat price so a typical user leaves the gross margin you want, and cap or meter usage at the point where a heavy user starts to cost you more than they pay.
The calculator below does that math with model prices we checked on 2026-10-13 against the official pricing pages of Anthropic, OpenAI, and Google, and Stripe’s standard US fees. It runs in your browser. Nothing you type is sent anywhere.
Who this is for: founders and product owners who charge a monthly seat price for a product that calls a language model. Who should look elsewhere: if you resell raw API access and bill per token, you need a markup formula, not a margin per seat. If you sell annual enterprise contracts with custom terms, model the contract, not a price list.
Result
One request costs $0.0112 on Claude Sonnet 5.5. Infra is spread over 500 paying users.
| Plan | AI cost / user | Stripe / user | Infra / user | Cost / user | Gross margin | Break-even requests | Requests at 60% margin |
|---|---|---|---|---|---|---|---|
| Starter $20.00 | $3.35 | $1.02 | $0.80 | $5.17 | 74.2% | 1,630 | 554 |
| Pro $60.00 | $16.73 | $2.46 | $0.80 | $19.99 | 66.7% | 5,088 | 1,860 |
Blended gross margin across all plans: 71.0%
Gross margin here is price minus model tokens, Stripe fees, and infra. It leaves out support, refunds, taxes, and free users. The uncached share of input is billed at the base input price. Cache writes can cost more (1.25x on Claude), so a low hit rate costs a little more than shown. Token counts for the same text differ between providers.
The same calculator lives on its own page at /tools/ai-saas-margin-calculator/.
The pricing formula: cost per active user, then margin
The price of an AI SaaS comes from four formulas.
- Cost per request = input tokens × input price + cached input tokens × cache price + output tokens × output price.
- Cost per user per month = cost per request × requests per user, plus one Stripe charge, plus your monthly infra bill divided by paying users.
- Gross margin = (price − cost per user) ÷ price.
- Break-even requests = (price − Stripe − infra per user) ÷ cost per request. Past this number, the user loses you money.
The top-ranking guides we read for this question stop at line 1. They leave out Stripe, so every margin they show is too high by the processing fee. On a $20 seat that fee is about 5% of revenue.
Where each input comes from
| Input | Where to get it | What we used |
|---|---|---|
| Model prices | The provider’s pricing page | Anthropic, OpenAI, Google, checked 2026-10-13 |
| Tokens per request | The usage object your model API returns on every response |
Log a week of real traffic. Use the average, then test your 90th percentile user |
| Cached share | cached_tokens or cache_read_input_tokens in the same usage object |
Measure it. Our examples use 50% and 70% |
| Stripe fee | stripe.com/pricing, checked 2026-10-13 | 2.9% + $0.30 card fee, plus 0.7% for Stripe Billing |
| Infra | Your hosting, database, vector store, and logging bills | A fixed monthly amount spread over paying users |
Stripe’s page lists the card fee as “2.9% + 30¢ per successful transaction for domestic cards” and the pay-as-you-go Billing fee as “0.7% of Billing volume.” International cards add 1.5%, and currency conversion adds 1% more. If most of your buyers pay with cards from another country, raise the percent in the calculator.
Worked example 1: a $20 writing assistant
A writing tool charges $20 per user per month. A typical user makes 400 requests a month. Each request sends 3,000 input tokens (a system prompt, a style guide, and the user’s draft) and gets back 800 output tokens. Half the input is the same system prompt and style guide on every call, so it comes from the prompt cache. The product has 500 paying users and spends $400 a month on infra. Stripe takes $1.02 per user per month, and infra is $0.80 per user.
Here is the same product on six model choices. Prices are standard tier, per 1 million tokens, checked 2026-10-13.
| Model | Input / output per 1M | Cost per request | AI cost per user | Total cost per user | Gross margin | Break-even requests |
|---|---|---|---|---|---|---|
| Claude Opus 5.5 | $4 / $20 | $0.0223 | $8.92 | $10.74 | 46.3% | 815 |
| Claude Sonnet 5.5 | $2 / $10 | $0.0112 | $4.46 | $6.28 | 68.6% | 1,630 |
| GPT-6.1 Sol | $2 / $10 | $0.0112 | $4.46 | $6.28 | 68.6% | 1,630 |
| Gemini 3.8 Flash, 2026 price | $0.75 / $3.75 | $0.0042 | $1.70 | $3.51 | 82.4% | 4,290 |
| Gemini 3.8 Flash, 2027 price | $1.50 / $7.50 | $0.0085 | $3.39 | $5.21 | 73.9% | 2,145 |
| Claude Haiku 5.5 or GPT-6 Luna | $0.10 / $0.50 | $0.0006 | $0.23 | $2.05 | 89.8% | 32,176 |
What the table shows:
- The model sets the margin more than the price does. Opus 5.5 leaves 46.3%. Sonnet 5.5 leaves 68.6% at the same $20. If the writing quality holds on the cheaper model, that one switch is worth $4.46 per user per month.
- Caching is worth about 6 points here. With no cache hits, Sonnet 5.5 costs $0.0140 per request and the margin drops from 68.6% to 62.9%. On Sonnet 5.5 a cache hit costs $0.10 per million tokens against $2 for fresh input.
- Watch for dated price changes. Google lists Gemini 3.8 Flash input at “$0.75 through December 31, 2026. $1.50 starting January 1, 2027.” Output doubles the same day. A plan priced on the 2026 rate loses 8.5 points of margin on New Year’s Day. The calculator has both rows so you can plan for it.
- The same price is not the same cost. Sonnet 5.5 and GPT-6.1 Sol have identical list prices, but they count tokens differently. Anthropic’s pricing page says Claude 4.7 and later use a tokenizer that “produces approximately 30% more tokens for the same text.” Measure your real token counts on each model before you compare.
Worked example 2: two plans and one heavy user
A research assistant answers questions over the user’s own documents. Each request sends 12,000 input tokens and returns 1,200. 70% of the input is cached. It runs on Claude Sonnet 5.5, so one request costs $0.0200. There are two plans and $600 a month of infra.
| Plan | Price | Requests per user | AI cost | Stripe | Infra | Cost per user | Gross margin | Break-even requests |
|---|---|---|---|---|---|---|---|---|
| Starter (300 users) | $29 | 300 | $6.01 | $1.34 | $1.58 | $8.93 | 69.2% | 1,301 |
| Pro (80 users) | $99 | 2,000 | $40.08 | $3.86 | $1.58 | $45.52 | 54.0% | 4,668 |
| One heavy Pro user | $99 | 6,000 | $120.24 | $3.86 | $1.58 | $125.68 | −27.0% | 4,668 |
Blended across the 380 typical users, gross margin is 62.0%. That looks fine. The problem is the shape underneath it:
- Pro is under a 60% line already. At 2,000 requests the plan earns 54.0%. To hold 60%, a Pro user can make about 1,704 requests a month.
- “Unlimited” breaks at 4,668 requests. A user who makes 6,000 requests costs $125.68 and pays $99. Each one loses you $26.68 a month. A handful of them can erase the margin of a whole plan.
- The fix is an allowance plus overage. Include 1,700 requests in Pro and charge for each request above that. To keep 60% on the overage after Stripe’s 3.6%, each extra request needs to sell for about 5.5 cents: $0.0200 ÷ (1 − 0.60 − 0.036).
- Or route the cheap work. The same Pro plan on Gemini 3.8 Flash makes 78.7% at the 2026 price and 62.9% at the 2027 price. You can also send only the simple requests to a small model and keep the big one for the hard ones.
Put your own plans into the calculator above. It adds a warning under any plan that falls below your margin line, and tells you the request count where it does.
What margin to aim for
There is no single right number. Bessemer’s State of AI 2025 report, which studied 20 high-growth AI startups, found that its steadier “Shooting Stars” averaged about 60% gross margin. Its fastest “Supernovas” averaged far less: “On average, these AI Supernovas have only 25% gross margins, often trading distribution for profit in the short term.” Bessemer measured those figures across its sample. We have not checked them, and the report does not say how each company calculated gross margin.
A 60% warning line is a fair default for a small team without venture money to burn. Set your own in the calculator.
Five moves that raise margin without raising price
- Cache the parts that repeat. Put the system prompt, instructions, and shared documents first, and keep them byte-for-byte the same. On Claude Sonnet 5.5 and Opus 5.5 a cache hit costs 0.05x the input price. A cache write costs 1.25x, so caching pays off from the second request.
- Route by difficulty. Claude Haiku 5.5 and GPT-6 Luna cost $0.10 per million input tokens. That is 20 times less than Sonnet 5.5 or GPT-6.1 Sol. Classification, extraction, and short replies rarely need the big model.
- Sell an allowance, not “unlimited.” Price the plan on your 60th to 80th percentile user, include a request allowance, and meter above it. Our Stripe subscription patterns post covers the webhook side of metered billing.
- Offer annual billing. Stripe’s 30¢ is per charge. One yearly charge instead of twelve monthly ones saves $3.30 per user per year. The percentage fee stays the same.
- Re-check prices every quarter. Providers change prices on announced dates, as the Gemini 3.8 Flash row shows. Put the next change in your calendar.
Before any of this, check that the feature needs a model at all. Our checklist, should this feature be AI, catches the cases where plain code is cheaper and more reliable.
What the calculator leaves out
The formula covers model tokens, Stripe, and infra. It does not include support time, refunds, chargebacks, sales tax, free-tier users, failed calls that you retry, or long-context surcharges. Claude Haiku 5.5 costs more for prompts over 100,000 tokens, and Gemini 3.1 Pro costs more over 200,000. If a plan clears your margin line with only a few points to spare, those costs will push it under.
FAQ
How much should I charge for my AI SaaS?
Start from cost. Work out what your 75th percentile user costs per month in tokens, Stripe fees, and infra, then divide by one minus your target margin. For a user who costs $8 and a 60% target, that is $20. Check the answer against what buyers already pay for similar tools before you publish it.
Should I use per-seat or usage-based pricing for an AI product?
A seat price with a usage allowance works for most small AI SaaS products. Buyers get a predictable bill, and you are protected from the heavy user in worked example 2. Pure usage pricing suits developer tools, where buyers already think in requests or tokens.
What is a good gross margin for an AI SaaS?
Bessemer’s 2025 sample of high-growth AI startups averaged about 60% for its steadier group and about 25% for its fastest growers. Classic SaaS often runs at 80% or more. Below 50%, look hard at model choice, caching, and usage caps.
Do Stripe fees really matter if tokens are the big cost?
Yes, on low-priced plans. On a $20 seat, Stripe’s 2.9% + 30¢ plus 0.7% for Billing is $1.02, or 5.1% of revenue. On a $9 plan it is 6.9%, because the 30¢ is fixed.
Why do Claude and GPT cost different amounts at the same list price?
They use different tokenizers, so the same prompt becomes a different number of tokens. Anthropic says its newer models produce about 30% more tokens for the same text than its older ones. Run your real prompts through each model and read the usage numbers before you choose on price alone.
We build complete AI SaaS products, including billing, usage limits, and model routing. See AI SaaS development, or read how we pick between the AI SDKs we reach for and how we keep tenants apart in multi-tenant isolation models.
