Guides / price a per seat ai product

Pricing a per-seat AI product against uneven seat usage

Per-seat pricing decouples revenue from usage, which is comfortable until seats stop looking alike. On AI products an active seat can cost hundreds of times a dormant one, so the seats you bill and the seats you serve drift apart. Culpa, a local-first LLM cost, margin, and forecast ledger, attributes spend to each seat, so the drift becomes a number instead of a surprise.

Why this happens

Per-seat economics on an AI product rest on a fact nobody writes down: a large share of purchased seats barely get used. Those dormant seats pay full price and generate almost no model spend, and they're what makes the blended margin look healthy. The uncomfortable consequence is that your margin improves when adoption fails. Every successful activation campaign moves a seat from nearly free to genuinely expensive, and the customer-success team running it has no idea it's a cost programme.

What this usually looks like

  • Nobody has split seat cost by activity, so the healthy blended figure has never been questioned.
  • Margin quietly declined through a quarter in which the product got measurably more useful.
  • Activation and adoption targets exist with no matching cost forecast behind them.
  • A handful of seats inside your biggest accounts cost more than the whole account pays per seat.

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
Modelling per-seat cost from an average across all sold seats.Dormant seats drag the average toward zero, so the figure describes the seats that generate no value.Report cost for dormant, median-active and power seats separately, and forecast the mix shifting.
Running an adoption push without a cost forecast.Activation converts free seats into expensive ones, so a successful campaign lands as an unexplained bill.Forecast the spend consequence of the activation target before the campaign starts, not after.
Assuming a power seat is just a heavier median seat.Power seats usually use a different feature mix, often the dearest one, so scaling the median understates them.Look at what power seats actually do, and price the feature rather than the volume.

Run this check tonight

  1. Count sold seats against seats that made a call last month. The gap is what your margin currently rests on.
  2. Compute spend for a dormant seat, a median active seat and a top-5% seat. Three numbers, not one.
  3. Take your adoption target for next quarter and price it at the median active seat cost.
  4. Check whether any single seat costs more than your per-seat price, and how many do.
  5. Ask what your margin becomes if activation reaches 90%, which is the outcome everyone is working toward.

1,000 seats at $40, and what activation would do to them

Illustrative example

A per-seat product on Gemini 3.5 Flash at real rates of $0.0015 per 1k input and $0.009 output. The seat mix below is modelled: 380 dormant, 570 median active, 50 power.

Dormant seat: (60 x $0.0015) + (8 x $0.009) = $0.090 + $0.072 = $0.162
Median active seat: (1,400 x $0.0015) + (200 x $0.009) = $2.10 + $1.80 = $3.90
Power seat: (22,000 x $0.0015) + (3,400 x $0.009) = $33.00 + $30.60 = $63.60, against $40 of revenue
Total cost = (380 x $0.162) + (570 x $3.90) + (50 x $63.60) = $61.56 + $2,223 + $3,180 = $5,464.56
Against $40,000 revenue that's 86.3% blended margin, resting on 380 seats doing nothing

Activate every dormant seat to median usage and cost rises to (950 x $3.90) + $3,180 = $6,885, taking margin to 82.8%. The product got better, adoption succeeded, and the finance review will ask what went wrong.

Every number, with its confidence and source

FigureWhat it meansConfidenceSource
$0.162 to $63.60modelled monthly model spend for one seat, dormant against power user, on a $40 seat priceestimatedBoth endpoints at real Gemini 3.5 Flash rates per 1k tokens from the price book, effective 2026-07-02. A range because the seat mix and token volumes are modelled.
86.3%modelled blended gross margin across 1,000 seats, of which 380 are dormantcalculated($40,000 minus $5,464.56) divided by $40,000, from the teardown arithmetic at real Gemini 3.5 Flash rates.

What a generic answer can’t know

A provider bills the account, not the seat, so the split between dormant, active and power seats exists only where the seat identifier does, which is inside your application. Culpa attaches it to the call on your infrastructure, keeps your prompts and responses there, and counts the calls to run your plan.

Questions founders ask next

Does per-seat pricing work for AI products?

It works while seat usage stays uneven, because dormant seats subsidise active ones. It gets tested as adoption improves, so the right move is a per-seat price that survives high activation rather than one that depends on low activation.

Why did margin fall when adoption improved?

Because a dormant seat costs almost nothing and an active one costs real money, while both pay the same. Activation converts the cheapest seats into ordinary ones, which is a good outcome that shows up as a worse number.

Should per-seat plans include a usage allowance?

Above a certain intensity, yes. A seat allowance with a stated overage keeps the simplicity that makes per-seat pricing easy to sell while bounding the small number of seats that would otherwise cost more than they pay.

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: Gemini API pricing. Last reviewed 2026-08-01. Plain text version.