Guides / how to price an ai saas product

How to price an AI SaaS product on real unit costs

Price an AI SaaS product from your 90th-percentile customer cost rather than the average, then cap the tail beyond it. Usage is long-tailed, so an average-priced plan loses money on the heaviest accounts. Culpa, a local-first LLM cost, margin, and forecast ledger, tags spend to a customer and reconciles it against revenue you type in or import.

Why this happens

Traditional SaaS pricing assumes serving one more account is nearly free. AI products broke that. Your heaviest account can cost fifty times your lightest on the same plan, so a single flat price produces both your best and your worst margin at once. Pricing from an average puts roughly half your customers above the line you budgeted for, and the ones furthest above it are the ones who like the product most.

What this usually looks like

  • Your blended gross margin looks fine while a specific plan tier loses money on every heavy account.
  • Nobody can name the least profitable customer, so nobody can act on it.
  • Usage limits were set from a guess rather than from the token profile of real power users.
  • A large new logo lands and the model bill jumps by more than the contract's monthly value.

Free, no card, no account

Run the free Cost Leak Scan

It shows your most expensive conversation before you install anything.

Run a free scan

Mistakes that cost the most

MistakeWhy it hurtsDo instead
Setting the price from average cost per customer.On a long-tailed distribution the average sits nowhere near the accounts that decide your economics.Price from the 90th percentile and bound the tail with a usage cap or an overage rate.
Launching an unlimited plan before measuring the tail.Unlimited is a promise priced against a maximum nobody has computed, and the maximum keeps moving.Publish a generous included allowance with a stated overage, which reads as fair and bounds the risk.
Treating model cost as fixed when it changes monthly.Prices and model mix both move, so a margin computed once quietly drifts out of date.Recompute margin per account monthly against a dated price book, and alert when any account crosses a threshold.

Run this check tonight

  1. Compute model spend per customer for last month and sort descending. Read the top ten by hand.
  2. Find the 90th percentile. That number, not the mean, is your pricing floor.
  3. Divide each account's cost by what it pays. Anything above a third of revenue deserves a conversation.
  4. Check whether any account already costs more than it pays, and whether a cap would have caught it.
  5. Re-run the whole calculation at next month's rates if a model you use has a dated price change coming.

Pricing a plan from the tail instead of the mean

Illustrative example

A product on Claude Sonnet 5 at its real introductory rates, $2.00 per million input and $10.00 output. The usage distribution below is modelled on a typical long tail across 500 accounts.

Median account: 3M input, 600k output = (3 x $2.00) + (0.6 x $10.00) = $6.00 + $6.00 = $12.00
90th percentile: 14M input, 3M output = (14 x $2.00) + (3 x $10.00) = $28.00 + $30.00 = $58.00
Heaviest account: 60M input, 14M output = (60 x $2.00) + (14 x $10.00) = $120 + $140 = $260
Price at 3x the median ($36) and the 90th-percentile account costs 161% of revenue
Price at 3x the 90th percentile ($174) with a cap at that usage, and the tail is bounded

The median says $12 and the tail says $260. A plan priced off the median loses money on a fifth of the base, and the fix is a floor set by the 90th percentile plus a cap.

Every number, with its confidence and source

FigureWhat it meansConfidenceSource
$12.00 to $260.00modelled monthly model cost from median to heaviest account on identical usage-based pricingestimatedBoth endpoints computed at real Claude Sonnet 5 introductory rates per 1k tokens from the price book, effective 2026-07-02. A range because the usage distribution is modelled.
$58.00modelled 90th-percentile monthly customer cost, the figure a plan price should clearcalculated(14 x $2.00) + (3 x $10.00) per million, using real Claude Sonnet 5 introductory rates. Token volumes are modelled.

What a generic answer can’t know

Pricing needs two numbers from opposite sides of your business, model spend and revenue, joined on the customer. No provider has your revenue and no billing system has your token counts. The join has to happen where both are reachable. Culpa does it on your infrastructure, keeps your prompts and responses there, and counts the calls to run your plan.

Questions founders ask next

Should I price an AI product per seat or per usage?

Per seat is simpler to sell and decouples revenue from cost, which is dangerous when usage varies fiftyfold between accounts. A hybrid works well: a seat price with an included allowance and a stated overage above it.

What gross margin should an AI SaaS product target?

There's no defensible industry figure to quote, and numbers that circulate usually come from companies with very different usage profiles. The useful target is your own trend and knowing which accounts sit below it.

How often should I revisit pricing?

Whenever your model mix or a provider rate changes, not on a calendar. A dated price change like Claude Sonnet 5's move from $2 to $3 per million on 2026-09-01 shifts your unit costs by 50% with no action on your side.

On your infrastructure

Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.


How Culpa works

Find the culprit. Not just the total.

Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.

Your prompts stay local.

Culpa runs on your own infrastructure. What you send to a model reaches us at no point.

Every dollar has a name.

Follow any charge to the conversation, the user, the feature and the customer behind it.

See the bill before it lands.

Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.

Three steps to your first answer.

1

Change one base URL.

Or drop in the Python or TypeScript library.

2

Find your most expensive conversation.

In the first session, not the first week.

3

Cost your next feature before you ship it.

Base URLhttp://localhost:4545/v1Your traffic keeps flowing if Culpa ever stops.

Why the bill went up

Example dashboard

Calls traced

418,209

across 3 projects

Spend this week

$378.41

+ $182 vs last week

Failed calls

312

74% retried, and you paid for all of them

+ $182 this week traced to one culprit

Spend over 14 days

$0$20$40$60$8024262830020406
user_384report_generatorconv_91fprompt_v1894,220 tokens3 retries$6.81

Most expensive users

user_384$38.42
user_119$21.07
user_562$14.90
user_204$8.30
user_871$5.10

Next week forecast

Best$180
Median$240
p90$310
p99$395

Graded against reality. Accuracy shown as results land.

Free, no card, no account

Run the free Cost Leak Scan

It shows your most expensive conversation before you install anything.

Run a free scan

Keep reading


Sources: Anthropic pricing. Last reviewed 2026-08-01. Plain text version.