Blog
engineering

Same models, better margins: AI pricing for SaaS

A

Arun Karunagaran

In short

You run a SaaS product that sells AI research: $49 a month for 4,000 credits, which customers spend finding companies, identifying decision-makers, verifying emails and drafting outreach. One Monday a competitor launches at $49 with 5,000 credits. You call the same models from the same providers at roughly the same list prices, so matching them would cost most of your margin. How can they afford it? There are four possibilities:

The first is an illusion, the second runs out, and the third comes with a scale you don’t have. The fourth is the only one you can build, and it is what this piece is about: the engineering that lowers your cost per finished outcome, and the pricing choices that turn that into an advantage a competitor can see but not copy.

1. Same pricing model, very different prices

Open the pricing pages of Origami, Apollo and Bitscale, three products that all help sales teams find and reach buyers. One is an agent, one is a data platform, one is a spreadsheet. Their pricing pages are nearly interchangeable: a free tier, a monthly plan with a number of credits in it, and a bigger plan or a top-up when the credits run out.

In Growth Unhinged’s 2026 survey of 230 B2B software companies, this subscription-plus-credits shape became the most common pricing model at 37%, up from 25% a year earlier; 29% of companies already sell AI credits and another 33% plan to within a year.

The number is the only thing that differs, and it means nothing

When every page has the same shape, a buyer’s eye goes to the one thing that varies: how many credits. But a credit is whatever the vendor says it is. Here is what one credit buys at each of the three:

OrigamiApolloBitscale
What it isAgent that runs a prospecting play end to endSales data platform: seats plus credit poolsEnrichment grid: a spreadsheet where each column is a paid lookup
One credit buysA step of a play; the agent prices each playOne search request or one enrichment attemptOne provider result in one cell
Separate credit balancesOneEleven pools (lead, AI, conversation, dialler, visitor and more)One
A verified emailCharged only when found1 credit, found or notAbout 1 credit, only on a valid result
Research on 20 accounts100 credits (5 per account)1 credit per search requestAbout 3 credits per row for deep web research
The agent’s own reasoningInside the play priceBilled from a separate AI-credit poolFree
Entry plan, per month$49 for 4,000 credits$79 per seat for 4,000 credits (billed annually; $94 billed monthly)$349 for 15,000 credits; free tier of 200

Source: vendor sites, October 2026. A credit costs about 1.2¢ at Origami, 2.0¢ at Apollo and 2.3¢ at Bitscale, and buys something different at each.

What one job actually cost

Pricing pages tell you the rules; only a real run tells you the bill. So we gave all three products the same two briefs:

Full method and results are in the companion benchmark.

Both briefs, 40 leads askedOrigami ($49 plan)Apollo (team account)Bitscale (free tier)
What it metersThe delivered row; price computed per job by the agent (14 credits per lead in India, 9 in the US) and quoted before launchThe attempt: 1 credit per search request, 1 per enrichment, found or notThe column, per row, charged only on a valid result and quoted before each column
Usable leads (on-brief, verified email)34 (4 in India, 30 in the US)21 (6 and 15)8 (0 and 8)
Share of delivered rows on-brief100%78%64%
Credits spent32628, including 4 billed misses109
Credits per usable lead9.6 (about $0.12)1.3 (about $0.03 at list)13.6 (about $0.32 at the paid rate)
Time and human approvalsAbout 40 min; 9 approvals, including two rounds that delivered nothing and cost nothingAbout 3 min; 4 approvalsAbout 40 min; 12 approvals

One job, three meters. Apollo was cheapest per lead but left the most filtering to us. Origami cost the most per lead, but every row it delivered met the brief. Bitscale charged fairly per step, but its data sources found no sales leader at 11 of 20 US companies. All three did far better in the US than in India.

The point is not that one vendor is better. A buyer can’t compare these on credits at all, only on what one finished job costs at the quality bar they need. Origami’s $49 plan and Apollo’s $79 seat both include 4,000 credits a month. At the rates we measured, those 4,000 credits buy about 420 usable leads at Origami and about 3,100 at Apollo: seven times as many for 1.6 times the price. Then look at what the buyer had to do: Apollo’s rows were 78% on-brief and we filtered them by hand; Origami’s were 100% on-brief and arrived filtered. Neither number is on either pricing page.

Origami’s $49 plan and Apollo’s $79 seat both include 4,000 credits a month, but buy about 420 and 3,100 usable leads respectively; Origami’s leads were 100% on-brief and Apollo’s 78% before hand filtering

Soon, AI agents will compare software on buyers’ behalf. They will read the fine print in seconds and work out what each plan costs per finished job, so a big credit number won’t impress anyone. You may price in credits, but customers pay for results, and that is what you should compete on.

2. Three numbers to know before you change your price

Your cost per successful outcome. Not cost per call, token or attempt; failed runs and retries cost money too:

Cost per successful outcome = cost of all attempts, including failures and retries ÷ successful outcomes

Define success in the customer’s terms: a verified decision-maker, a ticket resolved without a human, every invoice field correct. On this measure a cheaper model that fails twice as often is the expensive one. And newer isn’t always better at your job: Coinbase tested three upgrades (Opus 4.5 to 5, Sonnet 4.6 to 5, GPT-5.4 to 5.6 Sol) on 16,140 transactions. All three caught less fraud; recall fell 22 points for Sonnet and 21 for GPT.

What that outcome is worth to the customer. Product A gives 200 leads for $49; B gives 150 for $79. If B’s leads convert at three times the rate, B delivers about 40% more pipeline per dollar, and a sales team that does the maths pays the premium. Price the outcome against the work it replaces, and test two plans.

How you compare on the same job. Not pricing pages: the cost of 100 accepted, verified leads at the same quality bar. A product can be more expensive per credit and cheaper per usable outcome.

Your cost per outcome sets your pricing flexibility. The customer’s value per outcome sets your pricing power.

3. Your pricing advantage starts inside the product

If a competitor delivers the same unit of work at 20% lower cost, they can include 25% more at the same price and gross margin (1 ÷ 0.8), or charge less, or keep a fatter margin. None of it needs a better model, only a more efficient use of the same one.

Curve showing extra work you can include at the same price and margin: 20% cheaper gives 25% more, 30% cheaper gives 43% more, 40% cheaper gives 67% more

One research task on the customer’s side is dozens of operations on yours: model calls, paid enrichment, retrieval, retries, and the extra tokens from growing context. Almost every line is an engineering decision, and it matters more than in classic SaaS: the survey’s median AI gross-margin target is about 50%, against the 70 to 80% SaaS is used to, and only 12% aim for 80% or more.

Falling model prices won’t do this for you

4. The engineering behind a cheaper outcome

The running example: an agent takes an ideal customer profile, finds 20 matching accounts, researches each, identifies the decision-maker and drafts a first message. Most of what it costs is decided by everything around the model.

4A. Measure cost per successful task, step by step

Build an eval set of 30 to 50 real customer tasks with a clear pass bar. Record cost, success rate and retries per task type, mean and p95, and log every run at the step level so you know what is expensive, not just that it is. A prompt change that improves quality 2% and doubles tokens is a pricing change.

4B. Build a tighter harness

The harness is everything around the model: the loop, the tools, the state, the stopping rules. It’s usually where the waste is.

The same research task built two ways: a single agent loop that re-plans every lap, versus a fixed pipeline where only account research and message drafting call a model

4C. Treat tokens as a budget

Most agent loops resend the whole conversation on every turn. Turn 1 sends the system prompt and tool definitions, say 8,000 tokens. Turn 2 sends them again, plus everything turn 1 produced, say another 2,000. Each turn pays for every turn before it, so the bill is not ten turns times one turn’s tokens:

TurnTokens sent on this turnTokens sent so far
110,00010,000
518,00070,000
1028,000190,000
2048,000580,000

An 8,000-token prompt plus 2,000 new tokens a turn, with no caching. Double the turns and the bill roughly triples: it grows with the square of the turn count.

Pricing tiers steepen the curve. Claude Haiku 5.5 charges $0.10 per million input and $0.50 per million output tokens up to a 100,000-token prompt; above that the whole request is billed at five times the rate, cached tokens included. In the example, context crosses 100,000 at turn 47; by turn 60 the input bill is $1.06 instead of $0.41, and the new tokenizer gets you there sooner. Other providers have steps of their own; find yours before you fix a per-task price.

Tokens sent per call grow linearly and cross Haiku 5.5’s 100K price step at turn 47; cumulative input cost reaches $1.06 by turn 60 instead of $0.41 at the base rate

Compact too hard and the agent pays for another search. The goal is the cheapest correct answer, not the fewest tokens.

4D. Route each step to the right model

Checking whether a company fits the profile is work for a small model or code; planning and writing the message are where a frontier model earns its price. A cascade tries the small model first and sends the call to the large model only when a validator rejects the small model’s answer. Every call pays the small price; only the escalated ones pay the large price as well. Say the small model costs 1¢ a call and the large one 10¢:

Share of calls escalatedCost per call with the cascadeAlways use the large model
10%1¢ + 10% of 10¢ = 2¢10¢
30%1¢ + 3¢ = 4¢10¢
50%1¢ + 5¢ = 6¢10¢
90%1¢ + 9¢ = 10¢ (break-even)10¢
100%1¢ + 10¢ = 11¢ (worse)10¢

With the small model at a tenth of the price, the cascade pays until nine calls in ten escalate. Measure your escalation rate; it decides whether the cascade is a saving or an extra hop.

The risk is a weak validator letting a cheap wrong answer through, which causes an expensive failure three steps later.

4E. Retrieve less, but the right less

Stuffing whole documents into the prompt is among the commonest waste, and poor retrieval shows up later as extra agent steps.

ElectionGPT answers questions about the 2026 Tamil Nadu elections on GPT-OSS-20B and 120B, so retrieval does the heavy lifting: a classifier routes each question or skips retrieval; the query is rewritten into vector and BM25 forms and the results fused; structured affidavit data stays in SQLite and the model writes SQL; aliases live in a lookup table, not the prompt. Most of the work happened offline, which is what lets small models hold up at 6.54 s p50 and 15.39 s p99.

4F. Stop paying twice for the same information

In data-heavy products, lookups can cost more than the model. Cache enrichment results within the freshness window your contracts allow; call providers in order of cost and hit rate and stop at the first verified result, as Bitscale and Origami do; send non-urgent work through batch APIs at half price. Fixing the waterfall can save more than switching models.

4G. Specialise only when volume justifies it

Once a narrow step runs at high volume, a small fine-tuned model can often do it for a fraction of the cost. Intercom moved a high-volume step in its support product off GPT-4.1 onto a fine-tuned 14B Qwen model, avoiding close to $250,000 a month in inference spend.

Checkr picked a fine-tuned Llama 3 8B over GPT-4 for its hardest background-check classifications, at about $800 a month against $7,000–12,000. Harvey cut its cost per analysed cell by 54.8% against Claude Sonnet 5 with a model trained for one legal workflow.

Our own InvoiceIQ Bench shows where savings like these come from, and where they stop. It tests 14 vision models on 494 real invoices; a document passes only if the invoice number, date, VAT and total all match exactly.

ModelExact-match accuracyCost for 494 invoicesCost per correct extraction
Gemini 3.1 Pro81.4%$9.74≈$0.024
Gemini 3.7 Flash80.6%$3.00*≈$0.0075*
InvoiceIQ (fine-tuned 8B)80.2%$0.19**≈$0.00048**
Claude Sonnet 578.7%$3.85≈$0.0099
Claude Opus 578.5%$10.66≈$0.027
Kimi K371.3%$17.30≈$0.049
GPT-5.6 Sol58.9%$10.44≈$0.036

Cost per correct extraction = run cost ÷ invoices extracted correctly, list prices October 2026. * Standard rate; $1.50 on launch pricing. ** One L40S at $2/hour: 345 s of GPU time at 16 concurrent requests.

Accuracy versus cost per correct extraction on InvoiceIQ Bench: the fine-tuned 8B InvoiceIQ reaches 80.2% at $0.00048, close to Gemini 3.1 Pro’s 81.4% at $0.024

InvoiceIQ, our fine-tune of the open Qwen3-VL 8B, lands 1.2 points behind the leader at about a fiftieth of the cost per correct result. Against the cheapest model that matches it, Gemini 3.7 Flash, the edge is smaller: about 16 times cheaper. Fine-tuning on 8,500 labelled documents took the base model from 48% to 80%, tested on invoices it never saw in training.

The GPU cost only holds while the GPU is busy. A self-hosted model is a fixed cost pretending to be a variable one. InvoiceIQ needs 19.4 GPU-hours per 100,000 invoices; what you pay depends on utilisation:

GPU utilisationCost per 100k invoicesPer invoicevs Gemini 3.1 Pro ($1,971 / 100k)vs Gemini 3.7 Flash ($607)
100% busy$39$0.000451× cheaper16× cheaper
50% busy$78$0.000825×8×
10% busy$388$0.00395×1.6×
Always on, 100k a month (2.7% busy)$1,460$0.01461.35×Flash is 2.4× cheaper

One L40S at $2/hour. Gemini costs from the same benchmark run at list prices; Flash at its standard rate.

An always-on GPU only beats Gemini 3.1 Pro above about 74,000 invoices a month, and Gemini 3.7 Flash above about 240,000. Below that, the API is cheaper, even before you count labelling, training and engineering time. That is the honest shape of specialisation: a huge edge over the model you’d pick for accuracy, a smaller one over the cheapest model that’s good enough, and only once volume covers the fixed cost.

Shopify found the same in production: a fine-tuned Qwen3-32B behind Flow is 68% cheaper and 2.2x faster than the closed model it replaced. The first deployment matched offline benchmarks yet activated 35% fewer workflows with real merchants, until a production feedback loop closed the gap in two weeks. Specialise last. Owning a model means owning that loop.

4H. Close the loop

Every technique above is a one-off unless something keeps applying it. Feed failures and runs above the p95 into the eval set weekly. Fix the cheapest lever first (a wandering prompt, a tool that returns too much, a cautious routing threshold); retrain on production data last, as Shopify did and as Coinbase did with an open 9B model on its own fraud data.

Ship only when cost per successful outcome falls without the pass rate dropping on the hardest cases, re-run the set whenever a provider updates a model you depend on, and use customer data for training only where contracts allow.

The production loop: production runs, log cost and outcome, grow the eval set, fix the cheapest lever, pass the eval gate, ship, repeat; cost per successful outcome falls each cycle

Order of work: measure; fix the harness and token use; route; fix retrieval and reuse; specialise last. Start the loop on day one, even if all it does is grow your eval set.

Same models, lower cost per outcome. Book an AI optimization consultation with Madhi AI

5. Turn real costs into credit prices

Start from measured costs, not a competitor’s credit price. For an illustrative research platform:

TaskMean delivery costp95 delivery cost
Quick lookup$0.01$0.02
Research run$0.05$0.12

Price per task = mean cost per successful task ÷ (1 − target gross margin)

At a 50% target margin a lookup prices at $0.02 and a research run at $0.10: with a credit worth $0.01 of usage, 2 credits and 10 credits.

6. Choose how you want to beat competitors

Say section 4 cuts a research run from $0.05 to $0.035 with no loss in quality. Four ways to spend a 30% saving:

Efficiency creates the option. Pricing strategy decides whether it becomes more customers, better retention or more profit.

7. Predictable pricing is an advantage in its own right

A user expects a task to cost 10 credits; the agent retries and burns 60. Next time they hesitate before clicking Run, then start rationing. Customers who ration get less value from a product they already pay for. On June 1, 2026 GitHub Copilot moved from premium requests to AI Credits metered by tokens at each model’s API rates; base prices didn’t change, but each request’s cost now depended on the model and the conversation length. One Pro+ subscriber quoted by The Register used about 8% of a month’s credits in two hours.

Customers shouldn’t need to understand your architecture to predict their bill. Each of these designs builds that trust, and each is affordable only when your cost per outcome is low and stable:

Design choiceWhat the user getsWhat it requires underneath
Credits defined by outcomeThey can do the maths themselvesA stable cost per outcome
An estimate before every actionNo surprisesLow variance per task type
Charge only on successNo paying for failuresA low failure and retry rate
Rollover of unused creditsNo use-it-or-lose-it pressureMargin headroom for banked credits
Spending caps and alertsA known worst caseReal-time metering
One price per task, however many stepsPredictabilityEnough margin to absorb outliers

Intercom’s Fin charges $0.99 per outcome however many actions its agent takes. Origami charges only for emails it actually finds. Bitscale charges nothing for failed lookups or agent reasoning, pauses workflows with alerts at 80% and 100% of usage, and rolls unused credits over up to three times the monthly limit.

Three packaging rules. Before product–market fit, sell a simple subscription with a generous allowance and log cost per task from day one; charge per outcome only once success is measured reliably. Price heavy users, don’t punish them: measure cost per account, cap runaway loops rather than normal use, sell committed volume, or allow bring-your-own-key as Warp and Zed do. And when you change pricing, do the one thing GitHub got right: show each customer what it means for their real usage a month before it applies, ship caps and alerts with it, and put some of your savings into the new plans.

8. The moat is a head start

Any single optimisation can be copied. What takes time to copy is the loop and the data behind it. A team that has turned months of production runs into eval cases, routing rules and training data starts every quarter ahead; a competitor beginning today has to collect the same data first. If your cost per outcome falls quarter after quarter, you can price towards where costs are going and repeat “more for the same price” instead of doing it once.

The bottom line

The next time a competitor offers 25% more credits for the same price, don’t copy their pricing page. Find out what their credits buy, what it costs you to deliver the same outcome, and what that outcome is worth to the customer. If your costs are too high, fix the system. If your value is higher, say so. If your costs are lower, decide how much of the advantage to give away and how much to keep.

Want us to audit your AI unit economics? Book a 30-minute call with Madhi AI

FAQ

Should AI features be priced per token, per credit or per outcome?

Per credit, with each credit a fixed price for a named task, is the default: it tracks your variable cost without exposing customers to your architecture. Per-token pricing pushes your variance onto the customer. Per-outcome pricing is the best customer experience but moves execution risk onto you; adopt it once your failure rate is low and your cost per outcome is stable.

How do we decide what one AI credit is worth?

Work backwards from measured mean cost per successful task and your target gross margin (section 5), then pick a denomination that makes common tasks round numbers. Keep the per-task credit price flat even though real cost varies; step and token caps are what make that safe.

What gross margin should an AI SaaS product target?

The 2026 survey median is about 50%, and only 12% of companies aim for SaaS-style 80%+. Design for 50% as the floor and use section 4 to climb. Model it per segment: heavy users and expensive task types change the answer.

How can we reduce AI agent costs without hurting quality?

Start with the harness: the loop, the tools, the state, the stopping rules. It’s usually where the waste is. Then treat tokens as a budget: cache the stable prefix, compact as you go, isolate messy work in sub-agents and design tools to return less. Route each step to the right model, and specialise last. The goal is the cheapest correct answer, not the fewest tokens. We go deeper in Reduce AI agent token costs with better harness design.

When should we fine-tune our own model instead of using an API?

Last. Only for a narrow, high-volume step with a reliable pass/fail signal, thousands of labelled production examples, and enough volume to keep a GPU busy. A self-hosted model is a fixed cost pretending to be a variable one: in the InvoiceIQ example it beats the top frontier model above about 74,000 documents a month, but only beats the cheapest capable one above about 240,000. Below that, use the API and spend the effort on the harness.

Ready to make AI part of how your business operates?

Let's identify the workflows where AI can create the greatest value and determine the right way to build them.