The credits engine your billing doesn't have.

Financial-grade credit wallets, ledgers, and real-time enforcement.

Credits look simple until they aren't.

You started with a credit counter. Increment on purchase, decrement on use. Shipped it. Then enterprise showed up: promotional credits that expire in 30 days, annual allocations that roll over, per-seat grants that scale with the team. Then finance asked for revenue recognition.

Now you have wallets, grants, expiry rules, priority queues, consumption mapping, audit trails, and a homegrown ledger held together by cron jobs and hope.

Every AI company is accidentally building a bank.

Billing reports what happened. The Credits Engine decides what's allowed.

Your billing platform processes usage after the fact. It tells you at month end that a customer blew past their allocation three weeks ago. By then the cost is incurred, the margin is gone, and they used something they never paid for.

The Credits Engine runs in the request path. It checks the balance and returns a decision before the model call fires.

That's the difference between a dashboard and a runtime.

The full credit lifecycle. One runtime.

From the first grant to the last deduction, every operation runs through one auditable system.

One balance per customer. Or per user. Or per agent. Or per site.

Every customer gets a live balance, funded by grants, drawn down by usage. Need pools per product, workspace, user, or agent? Resource-specific pools isolate balances at any level of your hierarchy.

Recurring, promotional, prepaid, manual. Every grant has rules.

Credits enter through grants: recurring allocations, one-time promos, prepaid top-ups, manual adjustments. Each carries an effective date, expiration, priority, cost basis, and category, tracked independently from the moment it lands.

Consumed in the right order. Expired on schedule.

On use, the engine burns grants atomically, expiring before non-expiring, promo before paid. Expiration is per grant: end of period, custom schedule, or never. Expired grants are voided and breakage recorded automatically. No cron jobs.

Check the balance. Return the decision. milliseconds.

Your app calls getCreditEntitlement() before the expensive operation. Stigg returns the balance and whether credits are sufficient. Hard limit blocks, soft limit allows and tracks the overage.

Deploy via sidecar for zero network hops. P99 < 10ms.

A double-entry ledger, not a counter.

Most systems are one number you increment and decrement. Fragile.

Stigg writes two entries per transaction, a debit and a matching credit, so nothing is overwritten and balances can't silently go negative. Backed by TigerBeetle, in production since June 2026: correct in the request path, no double-debits across retries, ASC 606-ready and ERP-exportable.

EVERY DEDUCTION IS TAGGED. BREAK IT DOWN LIVE.

Every deduction is tagged when it lands: customer, agent, feature, model, grant source. Group by any of them, filter to any window, and read consumption straight off the ledger you enforce against. Dashboard, API, and event stream share one query path. No ETL, no nightly rebuild.

50 concurrent agent calls. One credit balance. Zero overdraft.

An agent spawns 40 parallel sub-tasks. Between the balance check and the deduction, 39 other requests land, the balance goes negative, and nobody notices until the invoice. You can't cache your way out without race conditions, or lock your way out without wrecking P99.

Double-entry fixes it at the data layer. Thousands of parallel agents against one balance, correct in the request path. For AI credits, the ledger is the product.

Your billing stays. Stigg sits above it.

Stigg isn't a billing platform. Stripe, Zuora, and Chargebee keep doing payments, invoicing, and subscriptions. The Credits Engine runs alongside them through one SDK, no billing migration, no finance involvement. Export ledger data to Snowflake, Databricks, or your ERP over an event stream. Provision credits from Salesforce, trigger top-ups through Stripe. Stigg fits your architecture, it doesn't replace it.

"I've had product managers asking for this for years. It has been a source of churn - customers leave because we don't offer it."
Jeffrey Goldberg, Product Manager, Qlik

Ship credits in production, this week.

Define your credit currency. Create your first plan. Integrate the SDK.
Go live - without touching your billing.