.png)
Consumption-Based Pricing Models: Types and Systems
Explore types of consumption-based pricing models and how systems track usage, apply pricing, and enforce limits in production.
Billing system architecture manages invoices and payments. Entitlements control product access and limits. See how both layers fit into a modern software stack.
.png)
A free-tier user hits their API limit, and the product lets them through anyway. The entitlement check was reading from billing subscription data that hadn't synced yet.
By the time the billing system caught up, the overage had already happened. Billing and entitlements are different systems solving different problems, and treating them as one is what produces failures like this.
Billing system architecture manages the financial side of a purchase. It calculates charges, generates invoices, processes payments, and tracks subscriptions.
Typical components include:
Platforms such as Stripe and Zuora operate in this layer and focus on financial accuracy, revenue recognition, and regulatory compliance.
Billing architecture does not control what users can do inside the product. It records usage and charges for it after the fact.
Entitlement architecture controls what each customer can access inside the product based on their plan. It enforces feature access, usage limits, and credits in real time.
At runtime, a customer's effective entitlements are resolved from multiple sources: their active plan, any parent plan they inherit from, active add-ons, trials, and promotional overrides.
When sources return conflicting values, the system applies the most generous value. That resolution logic has to be consistent across all services that check entitlements.
Most entitlement systems are built from the same parts:
For example, a free user might receive 10 API calls per day, a Pro user 1,000, and an enterprise customer unlimited or with a configurable cap.
Unlike billing systems, entitlement architecture enforces these rules before the product action happens, not after usage is recorded.
The boundary is the purchase decision. Billing systems handle what happens after a customer pays, and entitlement systems control what the customer can actually do inside the product.
For example, in a SaaS product with Free, Pro, and Enterprise plans, the billing system stores the subscription and charges the customer. The entitlement layer decides which features appear in the UI, whether an API request goes through, or whether the user has reached their quota.
AI products make this boundary unavoidable. When a user burns through credits mid-session, the product needs an immediate enforcement decision.
Infrastructure like Stigg operates on the entitlement side of this boundary. Stigg manages the product catalog, enforces feature access and usage limits, and meters consumption in real time. It integrates across the revenue stack:
This keeps pricing, packaging, and entitlements aligned across systems without custom sync logic.
Billing systems are often used for entitlements because they already store plan and subscription data, so early products reuse that information to control access inside the product.
Most teams start by adding a plan field to the users table, checking it on each request, and moving on.
That approach works in the early stages. As the product evolves, the system must start handling:
Stripe’s catalog manages subscriptions and prices. It does not control feature access inside the product, maintain credit ledgers, or support hybrid pricing models that combine seats, usage, and prepaid credits.
Enterprise companies hit this point after years of acquisition-driven growth. What starts as one entitlement system becomes five, each tied to a different product, billing provider, or legacy setup. At that scale, keeping them in sync becomes a dedicated engineering problem.
Usage-based billing tools such as Orb and Metronome track consumption so it can be billed accurately. Entitlement systems track consumption to enforce limits and govern access inside the product.
Both deal with usage data, but they serve different layers of the stack. This is a common pattern: teams evaluate usage-based billing tools for consumption tracking, then discover they still need a separate layer for runtime enforcement and quota management.
A production monetization stack usually separates three architectural layers. When teams combine them, pricing logic becomes tightly coupled, and even small pricing changes require engineering work.
This layer defines plans, features, limits, and access rules. It evaluates entitlements in real time and provisions access when a customer upgrades, downgrades, or hits a limit.
Platforms like Stigg operate at this layer, managing the product catalog and enforcing feature-based access inside the product.
This layer collects product usage events and aggregates them for downstream systems.
Usage data typically flows to two places:
Each consumer has different requirements. Entitlement checks need low latency, while billing prioritizes accuracy and reconciliation.
This layer handles the financial side of monetization, including:
Problems appear when teams use billing metadata to drive runtime entitlement checks. At scale, this pattern introduces:
Stigg solves this by separating entitlement enforcement from billing.
Stigg's Sidecar runs as a Docker container alongside your application, caching entitlement data locally (in-memory by default, or optionally in Redis) so most access decisions resolve from cache.
On a cache miss, the Sidecar fetches from Stigg's Edge API with a configurable timeout to prevent upstream latency from affecting your application.
Because enforcement runs locally, the system stays operational when Stigg's upstream is unavailable. Entitlement checks don't fall back to open access or block all requests. Billing response times have no effect on enforcement decisions.
In-house entitlement systems break down when pricing and product complexity exceed what the original architecture can support.
Common triggers include:
AI features accelerate the breaking point. Credit balances, per-agent limits, and token costs introduce concurrency and correctness requirements that billing-adjacent entitlement systems weren't designed to handle.
Building a production-grade entitlement system is a multi-month engineering project. For many teams, it takes three to six months or more, and by the time it ships, the pricing model it was designed for has often already evolved. The full scope is easy to underestimate:
Each of those is a separate engineering decision, and most teams only discover them after the system is already in production.
Some teams adopt a dedicated entitlement platform instead. The scale problem usually forces the decision: six agent sessions hit the same team budget simultaneously, concurrent debits aren't atomic, and the balance goes negative six times before anyone catches it.
Production entitlement systems need enforcement at the user, agent, team, and org level independently, and in-house systems built around a single subscription record rarely model that cardinality.
In-house systems built for one product rarely survive contact with enterprise usage patterns. Webflow hit this ceiling and moved pricing updates, localization, and credit experiments through Stigg instead of rebuilding the infrastructure to handle it.
Entitlement logic inside application code creates a hidden tax on engineering time. A pricing tier change, a new credit model, or an enterprise contract requirement becomes a ticket, a review, and a deployment before it ever reaches a customer.
That tax compounds. The more pricing logic is coupled to application code, the harder it gets to change either one independently.
Decoupling enforcement into its own layer is what gives teams back that time. When entitlements live outside the codebase, pricing decisions stop generating engineering work.
Stigg runs entitlement checks, credit enforcement, and spend governance in the request path before compute is consumed, without coupling any of that logic to your application code or payment infrastructure.
If entitlement logic is generating engineering tickets, the architecture isn't scaling with the product. See how Stigg separates enforcement from billing, and what that looks like in production.
Billing system architecture is the set of components that process financial transactions after a purchase. It typically includes rating, invoicing, payment processing, and subscription management. It does not control feature access or usage enforcement inside the product.
No, billing system architecture does not include entitlements by default. Platforms like Stripe and Zuora manage subscriptions and payments, but do not enforce runtime feature access or usage limits inside the product.
Yes, Stripe can support basic plan-to-feature mapping for simple catalogs. However, Stripe cannot enforce real-time usage limits, maintain credit ledgers, or support complex hybrid pricing models without additional infrastructure.
The main difference between RBAC and entitlements is what each system controls. RBAC manages user roles and permissions, while entitlements define what a customer can access based on their plan and usage limits.
An engineering team should consider buying an entitlement system when pricing changes require significant engineering work or the product catalog becomes difficult to maintain. Common signals include hybrid pricing models, usage-based limits, and technical debt in the entitlement layer.