How to · Margin

When One User Costs You More Than They Pay

By Ghiles Asmani, founder of Weckr

There is a specific bad feeling that comes with the thought that one of your paying customers might be costing you money. Not in some abstract way. Actually costing you more in tokens than they hand you every month.

If that suspicion just landed, let us find out for sure. It is a real thing that happens to good products, and it is completely checkable.

Here is the story of how it happens, how to confirm whether you have it, and what to do if you find one.

The story, because you have probably lived a version of it

You launch an AI feature on your $29 a month plan. It is good. People use it, and a few people use it a lot.

One of them, call her your power user, runs about 100 calls a day. Her use case pulls in a lot of context, so each call is around 6,000 tokens on a flagship model. That is roughly 18 million tokens a month.

At a blended rate of about $4.50 per million tokens, she costs you around $81 in model spend. She pays you $29. Every month you are down about $52 on your favorite customer, and her yearly contribution to your business is negative six hundred dollars and change.

She is not doing anything wrong. She loves the product. That is exactly what makes this so easy to miss.

Why this stays invisible until you go looking

The reason you did not catch it is structural, not a mistake you made. Flat pricing plus variable cost is the trap, and it hides the problem on both sides.

On the revenue side, everyone on the plan pays the same, so nothing flags her as different. On the cost side, your provider bill is one big total with no per customer breakdown, so her $81 is blended into everyone else’s usage.

Nothing you normally look at puts revenue and cost side by side for a single user. A money losing account looks identical to a profitable one until you deliberately do the math. This is the same structural issue behind why flat pricing breaks for AI products.

How to check right now, by hand

You can get a rough answer in an afternoon with what you already have. Here is the manual audit.

  1. List your heaviest users. From your app database, pull the top users by AI feature usage this month, ranked by request count.
  2. Estimate tokens per user.If you tagged calls with a user id you can sum tokens directly. If not, multiply each user’s request count by the average tokens per call for that feature.
  3. Turn tokens into dollars. Multiply by your model price. The break even calculator does this for you if you would rather not do it in a spreadsheet.
  4. Compare to what they pay. Put the per user cost next to their plan price. Anyone whose cost is above their price is underwater.

One catch worth knowing: the OpenAI dashboard does not break spend down by your user id, so if you never attributed calls you are estimating. The proper way to attribute is in OpenAI cost per user, and the margin math itself is in how to calculate gross margin per user.

You found one. Now what?

First, do not panic and do not fire your best customer. An unprofitable user is a decision to make, not an emergency to react to. You have three sane options.

  • Cap them gently. Downgrade the model on their heaviest feature from gpt-4o to gpt-4o-mini, or set a soft limit. Often the quality drop is invisible and the cost drop is large.
  • Price differently. Add a usage tier, a heavy user plan, or metered overage so the people who use the most contribute the most. Revenue that follows cost is the real long term fix.
  • Accept it on purpose. If she is a design partner, a marquee logo, or a referral engine, a negative fifty dollars a month might be the best marketing spend you have. The point is you chose it.

Any of these is fine. What is not fine is not knowing, because then the choice gets made for you, quietly, at the bottom of your margin. The deeper version of this tradeoff is in why power users hurt your AI margins.

See it for every user, continuously

The manual audit answers the question once, for the users you thought to check. The trouble is that next month there is a new power user, and you are back in the spreadsheet.

Weckr turns the one time audit into a live view. You wrap your existing client, and it records cost, revenue, and margin per user automatically, so every underwater account surfaces on its own.

import { Weckr } from '@weckr/sdk'

const wk = new Weckr({
  apiKey: process.env.WECKR_API_KEY,
  plans: { free: 0, pro: 29 },  // your plan prices, so margin is real
})

const response = await wk.chat(openai, {
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: prompt }],
  userId: user.id,
  feature: 'chat',
  plan: user.plan,
})

Because it knows both the cost and the plan price, it can show you margin per customer and flag the ones paying you less than they cost. You can see the per user margin view on seeded data at the live demo, and the giants learned this the hard way in what Uber and Microsoft learned about AI costs.

FAQ

Can one user really cost more than their subscription?

Easily. On a flat plan your revenue per user is fixed, but AI cost is variable and follows usage. A power user on a $29 plan making 100 heavy calls a day can run up $80 or more in model cost a month, which means you lose money on that account every single month while it looks like a healthy paying customer.

Why is an unprofitable user invisible until you look?

Because the provider bill is one aggregate total with no per customer breakdown. Flat pricing hides it on the revenue side and the single provider invoice hides it on the cost side. Nothing in your normal dashboards puts the two next to each other per user, so a money losing account looks identical to a great one until you deliberately compute the margin.

How do I check if I have a user costing more than they pay?

Pull your heaviest users by AI usage from your app database, estimate the tokens each consumed, multiply by your model price to get a per user cost, and compare that to what each one pays you. Any user whose monthly cost is above their plan price is underwater. Even a rough version of this audit will surface the obvious cases.

What should I do when I find an unprofitable user?

Nothing drastic. You have three sane options: cap them gently by downgrading the model on their heaviest feature or setting a soft limit, price differently with a usage tier or metered overage, or simply accept it because they are a design partner, a great logo, or a referral engine. The point is that you choose on purpose instead of being surprised.

How do I track cost per user without a manual audit every month?

Attribute cost at the moment of the call by tagging each request with your user id, then roll it up against what each user pays. Weckr does this by wrapping your existing client: it records cost and margin per user in real time, so every underwater account shows up on its own instead of waiting for a quarterly spreadsheet.

Keep reading

Know which customers pay for themselves

Most of your users are profitable. A few are not, and right now you cannot tell them apart, which is the only real problem here.

Weckr shows you cost and margin for every customer in real time, so an underwater account is something you notice and decide about, not something you discover a year late. Start with the demo, or read the full playbook in the AI cost and margin guide.

See the dashboard with real data, no signup needed.

Try the demo →