.jpg)
Consumption Pricing: How It Works + Implementation Guide
Learn how consumption pricing works, the infrastructure it requires, and how engineering teams implement usage-based pricing.
Learn how license entitlements work, why AI products need a real-time usage runtime, and how to decide between building this layer in-house or buying it.
%2520(1).png)
AI products burn compute on every request, and a static license cannot tell you whether the next one should run. The moment a product introduces AI credits, per-agent quotas, budget caps, or hybrid pricing, a license stops being enough.
License entitlements are the runtime layer that replaces the static license‑only enforcement inside the product. They decide what every customer, user, or agent is allowed to do in the request path, based on the active plan, current usage, and any overrides on the account. The decision has to resolve in milliseconds and stay correct under concurrent load.
The table above captures why engineering teams outgrow license-based systems once pricing involves usage, credits, or AI consumption. A license records who has access. An entitlements system decides what each request is allowed to do, every time it runs.
A software license is a legal agreement that grants a customer the right to use a piece of software under defined terms and conditions. In a license entitlement model, the license answers one question: Is the customer allowed to use the software at all?
In traditional software delivery, licenses were the primary access control mechanism. A company purchased 50 seats, and the license defined that up to 50 users could access the software.
Enforcement typically relied on:
These mechanisms validated that the customer held a valid license and had not exceeded the allowed seat count.
Legacy entitlement management platforms followed this model. License files or activation codes were issued at purchase, and the enforcement system validated them at runtime against a set of static rules: seat count, product version, and expiry date. Access decisions happened at activation, not continuously during product usage.
License-based systems were built for static access rights. A customer purchased a license; that license defined what they could do, and any change meant issuing a new license.
Pricing has since moved on. Access rules now update with API calls, AI tokens, credits, and consumption events that change minute by minute.
Engineering teams now need to support:
A license-only system was never designed for this level of flexibility. As a result, engineering teams often end up layering additional logic on top of the license model to manage product access inside the application.
Engineering teams confuse licenses and entitlements for an understandable reason: early on, they look the same. A customer subscribes to a plan, the plan maps to a set of permissions, and the system stores those permissions on the customer record. At a small scale, that model feels complete.
This approach works while the product and pricing model remain simple. The access logic usually looks like:
At this stage, licenses and entitlements appear interchangeable. The plan effectively behaves like a license that determines what the customer can use.
The model starts to break down as soon as pricing becomes more dynamic. Several common scenarios introduce complexity that the original structure was not designed to handle:
As the product evolves, that simplicity breaks down. Access logic spreads across services, billing objects become tightly coupled to application behavior, and every pricing change introduces new edge cases. The team has stopped maintaining licenses and started maintaining a license entitlements system, whether they called it that or not.
A license entitlement defines the specific capabilities a customer can use inside a product based on their plan or purchase. Entitlements translate commercial plans into runtime rules that the application can enforce.
Where licenses grant access, entitlements control how the product behaves for each customer. They define which features are available, what limits apply, and how the system measures usage against those limits in real time.
Common entitlement rules include:
For example, an AI coding agent might give every workspace 1,000 model credits per month, let admins allocate per-seat or per-agent budgets, top up with paid credit blocks that expire in 90 days, and apply a hard limit that denies further usage once paid credits are exhausted while letting promotional credits run under a soft limit.
The entitlement system evaluates these rules every time the product checks whether it should allow a request. This makes entitlements stateful and dynamic. They depend on the customer’s active subscription, configured limits, and current usage.
For engineering teams, entitlements function as a usage runtime that enforces access policy in the request path. The system continuously evaluates plan configuration and usage state to decide whether a feature request should succeed, be limited, or trigger an upgrade path. In an AI product, that decision sits in front of the model call. If it's slow or wrong, the model burns compute that the customer hasn't paid for.
In most products, a customer’s effective entitlements come from several sources at once: active plan, parent plan, add-ons, trials, and promotional grants. The entitlement system has to resolve all of those into a single value that the application can enforce.
When sources conflict, Stigg grants the most generous value available.
The main source of entitlements is the customer’s active subscription. This typically includes:
Add-ons introduce extra logic:
If a customer buys multiple add-ons affecting the same feature, the system resolves the final value automatically.
Customers can trial a higher tier while staying on their current plan. During the trial:
This allows teams to run upsell trials without changing the underlying subscription.
Promotional entitlements are granted directly to a customer account, outside of any plan. They are often used for:
These entitlements apply across all subscriptions without modifying the plan itself.
Some customers subscribe to multiple products that expose the same feature. When limits overlap, the system grants the highest value across subscriptions, so the customer receives the maximum allowed access.
This resolution happens every time the product checks access. The entitlement system must:
At small scale, this logic can live in application code. As pricing models expand with add-ons, trials, credits, per-agent quotas, and promotions, it becomes infrastructure.
Access checks need to stay correct under concurrent load, cache invalidation has to remain consistent during subscription changes, and fallback behavior has to exist when the entitlement service becomes unavailable.
These quickly turn into infrastructure reliability concerns rather than standard application logic.
Most in-house enforcement systems work under low traffic and predictable usage patterns. The failures start once requests become concurrent, entitlement state changes constantly, and AI usage carries real marginal cost.
These failure modes share a root cause: enforcement logic distributed across services with no single system responsible for correctness under concurrency. They are invisible at low traffic.
Under real AI workloads, where request rates are high, and usage carries direct compute cost, each one becomes a reliability and margin problem.
Role-Based Access Control (RBAC) and entitlements solve different problems. RBAC controls who can do what inside an account. Entitlements control what a customer can access based on their plan and usage.
RBAC is often the first system teams reach for because it already controls access inside an account. It works well for user permissions, not for commercial access tied to a plan or a balance.
Common gaps when using RBAC for entitlements:
The result is a system that can tell you who has access, but not whether they should still have it based on what they paid for or consumed.
RBAC answers: What can this user do?
Entitlements answer: What has this customer paid to use, and have they exceeded it?
Both are required in any product that charges for access, but they operate at different layers. Mixing them leads to access models that are hard to scale as pricing and packaging evolve.
Building an entitlements system in-house is a reasonable place to start. A few tables, some feature flags, and basic access checks are enough early on.
Building tends to work well when:
That changes as soon as pricing evolves. What started as a quick implementation turns into a maintenance burden and eventually slows the product down.
Common signs the in-house approach is breaking down:
Webflow experienced this directly. Before replatforming with Stigg:
When Webflow scoped building this in-house, the initial estimate was five engineers for six months. The VP of Engineering later admitted that building what they needed would actually have meant five engineers for over a year.
The license entitlements layer sits between the product and the billing stack. Billing handles invoicing, tax, and revenue recognition after the purchase decision. The license entitlements layer decides what each request is allowed to do before it runs.
Stigg is infrastructure for AI products that need real-time usage governance at scale.
It works alongside the billing stack (Stripe, Zuora, Chargebee), handling the runtime enforcement and entitlement logic that billing systems were never designed to cover:
Teams that centralize this layer avoid spreading access logic across services and reduce the need to ship code for every pricing change.
Once pricing logic lives in application code, every change is a deploy and every edge case is a custom fix. A dedicated usage runtime gives that enforcement layer a proper home between the product and billing stack. See how Stigg approaches that architecture for AI products at scale.
The main difference between a license and an entitlement is what each controls. A license grants the legal right to use software. An entitlement governs what a customer can access inside the product, including features and usage limits.
A license entitlement in SaaS is the combination of a customer’s subscription and the feature access and limits it produces. It determines what the customer can use and how much they can consume based on their plan, add-ons, and usage.
The main difference between entitlements and RBAC is the layer they control. RBAC manages user permissions inside an account. Entitlements manage what a customer can access based on their plan and usage limits.
Yes, you still need entitlements if you use Stripe. Stripe handles payments and invoicing, while entitlements enforce feature access, usage limits, and credit balances inside the product. The two layers run alongside each other.
An in-house entitlements system breaks down when pricing and access become dynamic. This happens when pricing changes require code updates, usage limits must be enforced in real time, or multiple entitlement sources need to be resolved together.