All postsMake money

How to price credits in your AI app

A credit is a promise of a finished job, not a model token. Here's the math, the shape and the rules, with a worked example.

9 minutes read

How to price credits in your AI app: a worksheet: cost, retries, margin, packs. A Lurk blog cover showing a credits receipt: 500 bought, some spent, 454 left.
On this page
  1. What is a credit, really?
  2. How are AI credits calculated?
  3. AI credits vs subscription: which shape fits?
  4. How many free credits should you give?
  5. The rules that make people trust a balance
  6. How to design credit packs
  7. Set it up

The short answer

Price credits per finished job, not per model token: decide what one job is (a report, an image, a minute of audio), add up what a job really costs you including failures, divide by one minus your target margin, then split that price into a round number of credits. Use packs for occasional users and a plan with included credits for regular ones. Show the cost before a job runs, refund failed jobs automatically, and never silently expire credits people paid for.

  • One credit buys part of a finished job people understand. Tokens are your cost, not their unit.
  • Price per credit = cost per delivered job ÷ (1 − target margin) ÷ credits per job.
  • Packs suit people who need you a few times a year; a plan with included credits suits weekly teams.
  • Free credits should end in a first finished job. Earned credits for setup and referrals cost less than an open free tier.
  • Show the balance and the cost first, refund failures, keep paid credits from expiring, and give every change a receipt.

A credit price calculator with sliders for cost per job, failure rate, target margin and credits per job, showing the resulting price per credit and three pack prices.

Credit price worksheetTry it

$0.080 ÷ (1 − 10%) ÷ (1 − 70%) ÷ 20 = $0.0148 a credit

  • $7.99500 credits25 jobs
  • $29.992,200 credits (+10%)110 jobs
  • $148.9912,000 credits (+20%)600 jobs
Move the sliders: cost per job, failure rate, target margin and credits per job give you a price per credit and three packs.

Most AI builders arrive at credits the same way. The model bill goes up, a few heavy users eat the margin, and a monthly plan suddenly feels risky. So you invent a credit, pick a number that looks like what other apps charge, and hope. Then the questions start: how many credits does a job cost, what happens when it fails, and why did this person sign up, spend their free credits on setup and never come back?

A builder of an AI lead-finding tool asked whether to sell credits to freelancers and subscriptions to agencies, after offering one free search, signup credits and top-ups. Replies said both groups have different rhythms and suggested testing both.

r/SaaS

That's a good question, and it has a practical answer. Treat this post as a worksheet: six steps, one worked example with realistic sample numbers, and the rules that make people trust a balance.

What is a credit, really?

A credit is a promise: this many credits get you one finished thing. One summarized report. One product photo. One minute of cleaned audio. People can picture a report. Nobody can picture 14,000 tokens, and they shouldn't have to. Tokens, GPU seconds and API calls are your costs. The credit is what the customer buys.

So step one is naming the unit of value: the smallest result someone would happily pay for on its own. If your app does several jobs, give each one a fixed credit price (a report is 20, a quick rewrite is 2) rather than a price that floats with the length of the prompt. A fixed price lets people decide before they press the button. A floating price makes every click a small gamble.

In a thread about credit-based AI pricing, replies said users understand a named job like a report far more easily than token units, and that they dislike paying for results they can't use.

r/SaaS

How are AI credits calculated?

Step two is the arithmetic. You need four numbers: what one attempt at the job costs you, how often an attempt fails, the gross margin you want, and how many credits one job takes. Then three lines:

  1. cost per delivered job = cost per attempt ÷ (1 − failure rate)
  2. price per job = cost per delivered job ÷ (1 − target margin)
  3. price per credit = price per job ÷ credits per job

The first line is the one people skip. If you refund failed jobs (you should, see below), every failure is a cost with no revenue. A 10% failure rate means each finished job carries a ninth of another attempt. Put your support time and payment fees into the cost per attempt too, or lower the margin you aim for to cover them.

A worked example for a report-writing app. Every input is a sample assumption; use your own bills.
Input or resultExample valueHow you get it
Model cost per attempt$0.12Average tokens per report × your model's price
Servers, storage, search per attempt$0.03Monthly infra bill ÷ attempts that month
Cost per attempt$0.15Sum of the two
Failure rate10%Failed or refunded jobs ÷ all attempts
Cost per delivered report$0.167$0.15 ÷ 0.9
Target gross margin75%Your choice
Price per report$0.67$0.167 ÷ 0.25
Credits per report20Your choice
Price per credit$0.033 (30 credits per dollar)$0.67 ÷ 20

So in this example, how much does 1 AI credit cost? About three and a third cents, because you decided a report is 20 credits. There's no market price for a credit. It's whatever your cost, failure rate and margin say, divided by a number you picked. The calculator at the top of this page does the same math; try it with your own numbers before you copy anyone else's price.

AI credits vs subscription: which shape fits?

Step three is choosing how people pay, and the answer comes from how often they need you. Look at how often the job really happens in someone's life or week, not how often you wish they'd open the app.

Pick the shape by usage rhythm.
ShapeFits whenWatch out for
Credit packs, pay as you goThe job comes up a few times a year (an insurance question, a CV, a tax letter). Freelancers with uneven weeks.People ration credits they've paid for. Make the cost per job obvious so they don't hesitate.
Subscription with included creditsTeams who run the job every week and want a predictable bill (an agency, a sales team).Heavy users. Include a monthly allowance and say clearly what happens past it.
Hybrid: plan plus top-upsRegular use with spikes, like a podcaster who records weekly but edits a season at once.Two kinds of balance can confuse. Say which credits are spent first and which ones reset.

The freelancer-or-agency question above has a simple answer: offer both, and let rhythm sort them. Packs for people who show up a few times a quarter, a plan for teams who'd rather not think about it. If your product is occasional by nature, don't force a monthly plan and then measure daily use. One builder of an insurance-questions app put it well: the hard part is getting someone back months later, when their policy renews. That's a reminder at the right moment, not a streak (more on that in why users don't come back).

The maker of an AI insurance-policy app moved from a monthly plan to signup credits and a small paid pack, and asked whether the credit pack system made sense to buyers.

r/SaaS

How many free credits should you give?

Step four. An open-ended free tier is a monthly bill you pay for people who may never pay you. Free credits are better because they have an edge, but only if that edge sits after the first finished job. The most common mistake in these threads is a welcome balance that runs out during setup.

10 of 10
free signup credits used by a single document upload, before the user could ask one question (self-reported, one app)r/SaaS, AskMyPolicy maker and replies
$2.80
model cost per free user on a free tier, as reported by one AI app makerr/SaaS, “Free trials are dead in the AI era”
85 of 100
users in one maker's example who stopped at free chat and never reached the paid build (self-reported, advertising cost left out)r/SaaS, Novelmint maker

These are single makers' own numbers, not benchmarks, but the pattern is clear. Size the welcome balance from the job, not from a round number: enough for the first finished job, plus room to try again if the first one wasn't quite right. In the worked example, 200 credits is ten reports and costs you at most about $1.67 per signup. That's a free tier with a ceiling you know in advance.

A chart comparing the number of people who sign up with the smaller number who finish a first useful job.

100 sign-ups, a month laterExample
  1. Signed up100 people
    100%
  2. Got a first win34 people
    34%

    The biggest leak is here.

  3. Came back for a second19 people
    19%
  4. Still around in week 49 people
    9%
The gap that matters: people who signed up versus people who got one useful result. Free credits should close it, not run out inside it.

Then let people earn more instead of handing out more. Give a few credits for setup steps that make the next job better (connecting a data source, saving a template), and a real bonus for bringing a friend, paid only when the friend finishes their first job. In the example, 500 credits each for a referral is 25 reports, about $4.17 in cost per person, and you only pay it after a new user got value. Our referral guide covers why the friend's first finished job, not the signup, is the moment to reward.

The rules that make people trust a balance

Step five. Credits feel fair when nothing about them is a surprise. These are the rules that come up again and again when people complain about AI credits:

  1. Show the balance and the cost before the job runs

    "This report costs 20 credits. You have 180." On the button, not in the docs. If a job might cost more (a longer file), say the range first.

  2. Refund failed jobs automatically

    If the job errors, times out or returns nothing usable by your own standard, give the credits back without a support ticket. You already priced failures into the cost per job, so this costs nothing extra.

  3. Never silently expire paid credits

    Credits someone bought should stay theirs. Free or earned credits can have an end date, as long as it's stated up front and shown next to the balance.

  4. A receipt for every change

    Every credit in or out gets a line: what happened, how many, the balance after. It answers "where did my credits go?" before anyone has to ask.

A builder asked how to handle credits when something breaks halfway through a job. Replies recommended keeping a ledger of every change rather than a single balance number, and restoring credits after failed operations.

r/SaaS

Refund failed jobsDraft

Whena report failsDogive back the credits it cost, with a receipt

A list of credit receipts: plus 200 welcome credits, minus 20 for a report, plus 20 refunded for a failed job, plus 500 friend bonus, each with the running balance.

Credits · MayaReceipts
  1. WelcomeSigned up+200200
  2. Report: Q3 salesFinished−20180
  3. Report: churnStarted−20160
  4. RefundReport failed, credits back+20180
  5. Friend bonusLeo finished his first report+500680
An example receipt list: a welcome bonus, a report, an automatic refund when a report failed, and a friend bonus. Every line shows the balance after.

On the expiry point, the objection is real. A developer on Hacker News couldn't see why credits they had paid for should have an end date, and the replies, several of them openly guessing, never settled why. If you need a cost ceiling, put it on free credits, not on money people already gave you.

How to design credit packs

Step six. Three packs is enough. One small pack so a new buyer can say yes without thinking, one middle pack most people pick, one big pack for heavy users. Give a bonus on the bigger packs, keep the numbers round, and label each pack in jobs as well as credits, because "35 reports" means more than "700 credits".

Example packs built on the worked example: $0.033 per credit, 20 credits per report, $0.167 cost per delivered report.
PackPriceCreditsReportsBonus vs base rateYour gross margin
Starter$51507none75%
Regular$2070035+17%71%
Big$502,000100+33%67%

Check the last column every time you add a bonus. Bonuses come out of margin, so the biggest pack is where you're thinnest. If it drops below the margin you can live with, shrink the bonus before you raise the small pack's price. And when your model costs fall, you can pass some of that on as a bigger bonus without touching the credit price people already know.

Set it up

You need two separate things: a way to take money, and a way to keep balances honest. The second is where most homemade credit systems go wrong, with a single number in a users table that nobody can explain when it looks off.

Lurk keeps that part for you from day one. You create a Credits unit and a few rules: a welcome balance on signup, a spend when a report runs, a refund when one fails, a bonus for both people when a friend finishes their first report. Your app sends events, Lurk changes the balance, and every change gets a receipt with the balance after it. Lurk doesn't meter your model costs; the cost math above is still yours.

You sell credit packs through your own Stripe account. Bought credits never expire, earned and bought credits are kept apart, and a refund takes back exactly the pack that was bought. Start from the Onboarding and Referral templates for the free credits, then add Coin packs or Top up and earn for the paid ones.

Selling your own unitsHow packs, Stripe payouts and refunds work.See microtransactions

Lurk's own price is a plan plus usage, with a free plan to start on; see pricing. Then paste the prompt below into your coding agent.

Set it up with your agent

Paste this to your coding agent and it sets Lurk up in your project. Then ask it for what this post describes, or start from one of these templates. Nothing goes live until you say yes.

Paste this to your agent

Read https://getlurk.com/llms.txt and set up Lurk for this project.

  • Claude Code
  • Cursor
  • Codex
  • Any harness

Questions people ask

How to do pricing for an AI platform?

Start from one finished job your customers recognize, like a report or an image. Work out what that job costs you including failed attempts, divide by one minus your target gross margin to get a floor price, then test upward based on what the job is worth to them. Choose packs, a subscription or both depending on how often people need the job.

How much does 1 AI credit cost?

There is no standard price, because each app decides what a credit buys. Work it out as cost per delivered job divided by one minus your margin, divided by credits per job. In this post's example, a $0.15 report with a 10% failure rate and a 75% margin at 20 credits per report comes to about $0.033 per credit.

How are AI credits calculated?

Behind the scenes, the app adds up model tokens, servers and other costs per job, then sets a fixed number of credits per job. Good apps show that number before the job runs. The credit is a price for a result, not a direct count of tokens.

How to make credits for AI?

Pick a name and a unit of value, give each job a fixed credit price, and keep a ledger where every grant, spend and refund is its own receipt. Add a welcome balance that covers a first finished job, and connect a payment provider when you start selling packs.

Are credits or a subscription better for an AI app?

It depends on rhythm. Credits suit people who need you a few times a year, because they never pay for idle months. A subscription with included credits suits teams who use you every week and want a predictable bill. Many apps offer a plan plus top-ups.

Should AI credits expire?

Credits people paid for shouldn't, and on iOS, Apple's guidelines say credits bought through in-app purchase may not expire. Free or earned credits can have an end date if you state it up front and show it next to the balance.

Sources

  1. r/SaaS: Credit-based vs subscription pricing on an AI app (freelancers vs agencies)
  2. r/SaaS: AskMyPolicy maker on moving from a monthly plan to credit packs
  3. r/SaaS: Free trials are dead in the AI era (Novelmint cohort, cost per free user)
  4. r/SaaS: How do you handle credits in your app?
  5. r/SaaS: Credit-based AI pricing models
  6. Hacker News: why should purchased LLM credits expire?
  7. Apple App Review Guidelines, section 3.1.1

More posts to read

Make coming back the easy part.

Send Lurk to your agent. It sets up the streaks, referrals and perks, and keeps a receipt for every change.

Get started free