Entitlements, explained
July 10, 2026

Somewhere in your codebase there is a line like if (customer.plan === "enterprise").
It worked when you had two plans. Then plans changed, a customer got a custom deal, marketing renamed a tier — and now nobody is quite sure what that line lets through. That line is a hand-rolled entitlement, and it's the reason changing your plans requires an engineering ticket.
What an entitlement is
An entitlement is the answer to one question: what is this customer allowed to do?
A plan isn't just a price — it's a bundle of permissions. Entitlements are those permissions, defined in one place, and they come in three shapes:
- Switches — a feature is on or off. SSO on Enterprise: yes. SSO on Starter: no.
- Limits — a feature is on, up to a number. Ten seats. Five projects. Three integrations.
- Allowances — a metered feature with an included quota. 100,000 API calls a month, then overage.
Every "can they do this?" moment in your product resolves to one of these three.
How the check works
Instead of asking plan === "enterprise", your product asks the billing platform: can this customer use feature X? The platform looks at the customer's subscription, resolves their plan's entitlements (plus any customer-specific overrides), and answers — allowed, denied, or allowed-with-N-remaining.
That one indirection changes everything:
- Plans become editable. Move a feature from Growth to Enterprise in the dashboard, and every customer's access updates. No deploy.
- Custom deals stop being code. An enterprise customer negotiated 25 seats instead of 10? That's an override on their account, not an
ifstatement with their customer ID in it. - The upsell happens at the gate. The moment a customer hits "upgrade to unlock" is the highest-intent moment in your product. Entitlements put it exactly where the desire is.
Entitlements and metering are two halves
In the previous article we said: metering counts, limits enforce. Entitlements are where the limits live.
Metering tells you a customer has used 100,000 calls. The entitlement says their plan includes 100,000 — and defines what happens next: block, warn, or bill the overage. Without entitlements, metering is just analytics. Without metering, entitlements can't enforce quotas. Together they're a pricing engine.
What this looks like in Tirdad
In Tirdad, entitlements are a first-class part of the catalog:
- Features are defined once — as switches, limits, or metered allowances.
- Plans bundle them: each plan carries its own set of entitlements over the same feature catalog.
- Checks are one call — from the API or the SDKs. In the Next.js SDK it's a single hook:
useHasFeature("sso"). - Overrides handle custom deals per customer, without touching the plan.
- Enforcement is automatic — caps and quotas are applied by the platform, with overage billed if that's what you choose.
Your product asks one question; billing answers it. The if (plan === ...) line retires.
This is billing, explained · 02 — one billing concept a week, in plain language. Previously: metered billing. Next up: proration.
Ready to gate features without shipping code? Start free at tirdad.ai.