Guides / free tier abuse

Free tier abuse, priced per signup

Free tier abuse is scripted signups consuming a whole free allowance at the highest cost per call they can reach. A genuine trial user takes a fraction of what's granted, while a scripted one takes all of it with the longest prompts it can send. Culpa, a local-first LLM cost, margin, and forecast ledger, meters spend per signup, so the free tier carries a unit cost instead of a hope.

Why this happens

A free tier gets designed around what a curious human does with it, and a human samples. They try a few things, and most never reach the limit. An automated signup behaves nothing like that. It consumes the full allowance, uses the largest prompt the interface accepts, and picks whichever action is most expensive per call. The cost gap between those two users isn't a percentage, it's two orders of magnitude, so a small share of automated signups can dominate the whole free-tier bill.

What this usually looks like

  • Free-tier spend grows faster than signups, which means cost per signup is rising.
  • A cluster of accounts exhausts its full allowance within minutes of creation.
  • Signups arrive in bursts with similar patterns and no subsequent activity.
  • Nobody can state the cost of a single free signup, so the tier has never been budgeted.

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
Granting the free allowance in calls rather than in spend.Calls vary enormously in cost, so a call allowance lets an abuser pick the dearest action every time.Grant a spend budget. It's the quantity you're actually giving away.
Letting the free tier reach your most expensive model.Cost per abusive signup scales directly with the dearest model you expose, and abuse finds it fast.Route free traffic to a small model, and make the frontier model part of what a trial converts into.
Measuring free-tier health by signup count.Signups look like growth while the cost per signup rises underneath, so both numbers move the wrong way together.Track cost per signup and cost per converted customer, and treat the first as an acquisition line item.

Run this check tonight

  1. Compute total free-tier model spend divided by signups last month. That's your real cost of acquisition per signup.
  2. Sort free accounts by spend and read the top fifty. The pattern will be obvious within a minute.
  3. Check how quickly the fastest accounts exhausted their allowance after creation.
  4. Confirm the allowance is denominated in spend rather than in calls or messages.
  5. Divide free-tier spend by paying customers acquired. Compare that against your other acquisition channels.

One genuine trial against one scripted one

Illustrative example

A free tier granting 50 calls, served on GPT-5.4 mini at real rates of $0.00075 per 1k input and $0.0045 output. Usage profiles and the automated share below are modelled.

Genuine user, 11 calls at 3k in and 500 out: 11 x [(3 x $0.00075) + (0.5 x $0.0045)] = 11 x $0.0045 = $0.0495
Scripted user, all 50 calls at 120k in and 2k out: 50 x [(120 x $0.00075) + (2 x $0.0045)] = 50 x $0.099 = $4.95
One scripted signup costs exactly what 100 genuine ones do
At 9,000 signups a month with 4% scripted: (8,640 x $0.0495) + (360 x $4.95) = $427.68 + $1,782.00 = $2,209.68
So 4% of signups produce 81% of free-tier spend

Four percent of your signups are four fifths of the bill. Every growth dashboard reports 9,000 signups and a healthy month, and the cost per genuine signup is buried under the ones that were never people.

Every number, with its confidence and source

FigureWhat it meansConfidenceSource
$0.0495 to $4.95modelled cost of one free signup, genuine trial against scripted, on GPT-5.4 miniestimatedBoth endpoints at real GPT-5.4 mini rates per 1k tokens from the price book, effective 2026-07-02. A range because the usage profiles are modelled.
81%modelled share of free-tier spend produced by 4% of signupscalculated$1,782.00 divided by $2,209.68, from the teardown arithmetic.

What a generic answer can’t know

A provider sees one account making calls and has no idea which of your signups made them or which signed up ninety seconds earlier. Pricing a free tier per signup needs the signup identifier on the call, which exists only in your application. Culpa records it on your infrastructure, keeps your prompts and responses there, and counts the calls to run your plan.

Questions founders ask next

How much does a free tier cost per signup?

Divide free-tier model spend by signups for a full month. Most teams have never computed it, and the figure is usually higher than expected because a small share of automated accounts consume their full allowance while genuine users sample.

What's the best way to bound free-tier cost?

Grant a spend budget rather than a call count, and route free traffic to a small model. Both bound the worst case directly, which a call limit doesn't, because an abuser will always choose the most expensive call available.

Should free-tier spend count as marketing or as cost of goods?

Marketing, since it buys acquisition rather than serving a paying customer. Keeping it out of your customer-serving cost line stops it distorting gross margin, and putting it next to your other acquisition channels makes it comparable.

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