Pricing AI credits fairly
Usage-based pricing is honest, but it can be terrifying. Here's how we made AI credits predictable.

When we started sketching Protodesk’s pricing, we had one rule: no surprise bills.
We’ve all had that friend. They hooked their SaaS up to an AI API. They left for a long weekend. They came back to a $2,400 invoice because a misconfigured loop kept calling the model. We didn’t want Protodesk to be the tool that does that to you.
But AI costs real money, and pure per-seat pricing hides that cost in a way that hurts smaller customers. A 3-person team making 50 AI calls a day shouldn’t subsidize a 3-person team making 5,000.
So we landed on credits. A credit is the predictable unit for AI work. Most actions cost one credit; heavier actions cost two. Here’s how the math works.
What counts as a credit
The common actions:
- Triage — one credit when a new ticket runs through the AI triage pass
- Ticket Context — one credit when the shared context refreshes after inbound messages
- Suggest — two credits for the multi-variant reply set, one credit to regenerate a single variant
- Auto-resolve — two credits when the auto-resolve pipeline attempts a reply (whether or not it sends)
- Follow-up / Improve / Polish — one credit per generated draft or rewrite
Reading tickets, sending manual replies, searching, and basically every non-AI action cost zero.
What each plan buys you
| Plan | Monthly credits | Rough ticket capacity |
|---|---|---|
| Free | 0 | Manual replies only (buy top-ups if you want AI) |
| Starter ($14.99/mo) | 250 | ~125 tickets/month with full AI |
| Pro ($29.99/mo) | 1,000 | ~500 tickets/month |
| Business ($59.99/mo) | 2,500 | ~1,250 tickets/month |
Credits reset monthly on your billing date. If you don’t use them, they don’t carry over (they’re bundled, not prepaid). If you run out, AI actions pause — your inbox still works; your team just replies manually until the next reset or until you top up.
Top-ups never expire
If your usage spikes — a launch, a bug, a viral moment — you can buy credits:
- 100 credits for $5
- 500 credits for $20
- 2,500 credits for $80
Purchased credits stack on top of your monthly allocation and never expire. We don’t play the “credits expire after 30 days” game. If you buy credits, they’re yours.
What we didn’t do
- Per-seat AI pricing. Some tools charge $X/seat for AI and $Y/seat without. That makes budgeting bizarre and punishes small teams. We charge for AI usage, period.
- Per-ticket pricing. Every ticket cost you money even if AI didn’t touch it. Hurts big inboxes, and incentivizes closing tickets prematurely.
- Tiered model pricing. Some tools charge 10× for Claude vs GPT. We use OpenRouter under the hood and absorb the variance. A credit is a credit.
How we chose the numbers
Starting from real usage data in our internal deployment:
- Median support ticket triggers ~2 credits (one for triage, one for Ticket Context)
- Tickets where an agent asks for reply variants use ~4 credits (triage + context + Suggest)
- Auto-resolved tickets use ~4 credits (triage + context + auto-resolve)
- So 300 credits = roughly 75–150 tickets depending on how often you use Suggest or auto-resolve; 900 credits = 225–450 tickets
We priced plans so that most teams never worry about running out, and the ones who do are the ones who’d genuinely benefit from upgrading anyway.
Open question
We’re still figuring out the right answer for bring-your-own-model (BYOM). On Business+, you can already select which model OpenRouter routes to. We’re exploring whether teams running their own self-hosted open-weights models should consume fewer credits (or none) since the inference cost isn’t ours to absorb. If that matters to you, let us know.




