# What is gross margin per customer? > Gross margin per customer is revenue minus what that customer costs you in model spend. How to compute it per account and why averages hide losses. URL: https://getculpa.com/what-is-gross-margin-per-customer Last reviewed: 2026-08-01 ## Answer 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. ## Common mistakes - Reporting one average margin across all customers. Why it hurts: Usage on AI products is long-tailed, so an average sits nowhere near the accounts that actually decide your economics. Do instead: 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. Why it hurts: It produces a number that's wrong for every single account, and confidently wrong is worse than absent. Do instead: 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. Why it hurts: An account can be profitable in month one and underwater by month four purely because its usage grew. Do instead: Recompute margin per account monthly, and alert when any account's cost crosses a share of its revenue. ## Self-check - 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) 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. Light account: 2M input, 400k output = (2,000 x $0.002) + (400 x $0.010) = $4 + $4 = $8 Light account margin = ($200 - $8) / $200 = 96% Heavy account: 60M input, 14M output = (60,000 x $0.002) + (14,000 x $0.010) = $120 + $140 = $260 Heavy account margin = ($200 - $260) / $200 = negative 30% Blended across just these two = ($400 - $268) / $400 = 33%, which describes neither account 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. ## Cost figures Every figure carries its confidence and its source. No figure on this site is provider-reported. - $260 — modelled monthly model spend for a heavy account paying $200 [calculated] Source: (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] Source: 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. ## FAQ Q: How do I attribute model spend to a specific customer? A: 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. Q: Where does the revenue side come from? A: 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. Q: What margin should an AI product target? A: 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. ## Sources - Anthropic pricing: https://platform.claude.com/docs/en/docs/about-claude/pricing Run the free Cost Leak Scan: https://app.getculpa.com/scan?source=pseo&slug=what-is-gross-margin-per-customer&cluster=metric Machine-readable index of every guide: https://getculpa.com/api/pages Human-readable index of every guide: https://getculpa.com/guides Site overview: https://app.getculpa.com/llms.txt Privacy: 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.