billing, explained · 02

Entitlements, explained

July 10, 2026

Entitlements, explained

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:

  1. Switches — a feature is on or off. SSO on Enterprise: yes. SSO on Starter: no.
  2. Limits — a feature is on, up to a number. Ten seats. Five projects. Three integrations.
  3. 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 if statement 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.