Guides / gross margin per customer
What is gross margin per customer?
Gross margin per customer is what an account pays you minus what serving it costs in model spend, per account rather than averaged. On usage-heavy AI products the spread between accounts is enormous. 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 could ignore per-customer cost because serving one more account was close to free. AI products broke that. Your heaviest account can cost fifty times your lightest one on the same plan, so a single flat price produces both your best and your worst margin. An average margin across the base looks fine right up to the point where a handful of heavy accounts move onto a cheap tier, and by then the damage is in the run rate.
What this usually looks like
- Your blended gross margin looks healthy while a specific plan tier is losing money on every heavy account.
- Nobody can name your least profitable customer, so nobody can act on it.
- Usage caps got set from a guess rather than from the token profile of your actual 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.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Reporting one average margin across all customers. | Usage on AI products is long-tailed, so an average sits nowhere near the accounts that actually decide your economics. | Report the distribution. Your 90th-percentile customer cost is the number that should set your pricing floor. |
| Attributing model spend to customers by dividing the total by headcount. | It produces a number that's wrong for every single account, and confidently wrong is worse than absent. | Tag every call with a customer identifier at request time, so the roll-up is measured rather than apportioned. |
| Treating a signed contract value as revenue for margin purposes without checking usage. | An account can be profitable in month one and underwater by month four purely because its usage grew. | Recompute margin per account monthly, and alert when any account's cost crosses a share of its revenue. |
Run this check tonight
- Pick your ten largest accounts by usage and compute model spend for each over the last month.
- Divide each account's spend by what it pays you. Anything above about a third of revenue deserves a conversation.
- Find the single account with the worst ratio. Check which plan it's on and whether that plan has a usage cap.
- Compare your heaviest account's cost to your median account's. The multiple tells you how badly a flat price fits.
- Check whether any account costs more than it pays. On usage-heavy products that's common and rarely noticed.
Two accounts on the same $200 plan, opposite margins
Illustrative example
Both accounts pay $200 a month. Both run on Claude Sonnet 5 at its real introductory rates, $0.002 per 1k input and $0.010 per 1k output. Only their usage differs, and the volumes below are modelled.
One account at 96% margin, one at negative 30%, and a blended 33% that would let both hide. The heavy account costs $260 to serve for $200, and only per-account attribution surfaces it.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| $260 | modelled monthly model spend for a heavy account paying $200 | calculated | (60,000 x $0.002) + (14,000 x $0.010) using real Claude Sonnet 5 introductory rates per 1k tokens from the price book, effective 2026-07-02. Usage volumes are modelled. |
| -30% to 96% | modelled gross margin spread between two accounts on an identical plan | estimated | Range across the two modelled usage profiles above, both priced at real Claude Sonnet 5 rates. Shown as a range because the endpoints depend entirely on your own usage distribution. |
What a generic answer can’t know
Margin 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
How do I attribute model spend to a specific customer?
Attach a customer identifier to every outbound call at request time, the same way you'd tag a feature. Without it the calls are anonymous in the ledger afterwards, and no amount of analysis recovers the mapping.
Where does the revenue side come from?
You type it in or import it. Culpa doesn't connect to your payment processor automatically at launch, so the revenue figure is one you supply and the margin is computed against it.
What margin should an AI product target?
There's no defensible industry figure to quote here, 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.
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.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Keep reading
Sources: Anthropic pricing. Last reviewed 2026-08-01. Plain text version.