SaaS Tiers & Entitlements Vocabulary
5 exercises — master the vocabulary of SaaS pricing tiers and entitlements: feature gating, the entitlement service, hard and soft limits, configuration-driven plans, and time-limited trial overrides.
0 / 5 completed
SaaS tiers & entitlements quick reference
- Feature gating — conditional access to a feature based on a tenant's commercial plan tier
- Entitlement service — centralised authority evaluating plan tier, add-ons, trial grants, and manual overrides
- Hard limit — operation is rejected when quota is reached (HTTP 403/413); non-negotiable ceiling
- Soft limit — operation is permitted beyond threshold but triggers a warning and upsell prompt
- Config-driven entitlements — plan rules defined in a data store; changeable by CS/sales without code deployment
- Time-limited override — trial entitlement stored with an expiry timestamp; auto-reverts when it passes
- Grandfathered entitlement — legacy access right retained by older customers when plan features are restructured
- Upgrade prompt — in-app or email upsell shown when a tenant approaches or hits a plan limit
1 / 5
A SaaS product has three tiers: Basic, Pro, and Enterprise. During a code review, an engineer comments: "Feature X is gated behind the Pro tier." What does feature gating mean technically in a SaaS context?
Feature gating is the mechanism that makes SaaS tiering commercially enforceable — it connects a tenant's paid plan to the features they can actually access.
How feature gating works at runtime:
① An incoming request arrives (user clicks "Export to CSV")
② The application calls the entitlement service: "Is
③ The entitlement service looks up the tenant's plan tier in the tenant configuration store
④ If the tenant is Pro or above: returns
⑤ If the tenant is Basic: returns
⑥ The application either renders the feature or shows an upgrade prompt
Implementation patterns:
Best practice: always enforce gating at the API/service layer — never trust UI-only gating. A determined user can bypass UI restrictions with direct API calls.
Key vocabulary:
• Feature gating — conditional access to a product feature based on a tenant's commercial plan entitlement
• Entitlement check — the runtime evaluation of whether a tenant/user is permitted to use a specific feature
• Upgrade prompt — the UI pattern shown to tenants on insufficient plans, directing them to upgrade
• HTTP 403 Forbidden — the correct status code for refusing a request due to insufficient entitlement (not 401, which implies authentication failure)
How feature gating works at runtime:
① An incoming request arrives (user clicks "Export to CSV")
② The application calls the entitlement service: "Is
tenant-abc entitled to feature:csv-export?"③ The entitlement service looks up the tenant's plan tier in the tenant configuration store
④ If the tenant is Pro or above: returns
{ permitted: true }⑤ If the tenant is Basic: returns
{ permitted: false, reason: 'pro_required', upgradeUrl: '/billing/upgrade' }⑥ The application either renders the feature or shows an upgrade prompt
Implementation patterns:
| Layer | Gating approach | Trade-off |
|---|---|---|
| Frontend (UI) | Hide or disable the UI element | UX benefit, but must also gate at the API — UI gating alone is not security |
| API layer | Return 403 or upgrade prompt if not entitled | Security boundary — this is the authoritative enforcement point |
| Business logic | Check entitlement before executing the operation | Granular, but can scatter checks across the codebase without a centralised service |
Best practice: always enforce gating at the API/service layer — never trust UI-only gating. A determined user can bypass UI restrictions with direct API calls.
Key vocabulary:
• Feature gating — conditional access to a product feature based on a tenant's commercial plan entitlement
• Entitlement check — the runtime evaluation of whether a tenant/user is permitted to use a specific feature
• Upgrade prompt — the UI pattern shown to tenants on insufficient plans, directing them to upgrade
• HTTP 403 Forbidden — the correct status code for refusing a request due to insufficient entitlement (not 401, which implies authentication failure)