Technical reference
Entitlement concepts in Subscrio.
Subscrio stores products, plans, features, customer subscriptions, and overrides. The .NET and TypeScript libraries use the same entitlement resolution order.
By Jasen Fici · Updated August 22, 2026
Core records
The catalog describes what can be sold or granted.
Customer records show who received a package and whether an agreement changes one of its values. Billing cycles and dates describe subscription timing. They do not process payments.
| Object | Definition | Example key |
|---|---|---|
| Product | A software product with its own features and plans. | analytics |
| Feature | A named capability, limit, or text value with a type and default. | seat-limit |
| Plan | A package inside a product that assigns values to features. | growth |
| Billing cycle | A timing option attached to a plan and used when creating a subscription. | growth-monthly |
| Customer | An account from the host application, addressed by a stable key. | acme |
| Subscription | An active or dated assignment between a customer and a plan billing cycle. | acme-growth |
| Feature override | A value attached directly to a subscription, with permanent or temporary behavior. | seat-limit = 40 |
| Resolved value | The final value Subscrio returns after checking the override, plan, and default. | 40 |
Supported values
Features carry typed intent and string values.
A toggle answers an access question. A numeric feature supplies a limit. A text feature can hold a product setting. The libraries validate feature definitions and expose helpers such as boolean enablement and raw value resolution.
A value such as api-calls-per-day = 10000 can state the entitlement. Counting consumption and billing for usage are separate responsibilities unless your application implements them.
advanced-reporting = trueseat-limit = 25retention-policy = 90-daysEntitlement resolution
Subscrio always checks values in the same order.
For a customer feature check, the engine checks the subscription override, then the plan value, then the feature default.
- Subscription overrideReturn a valid explicit value on the subscription.
- Plan feature valueOtherwise return the value configured on the assigned plan.
- Feature defaultOtherwise return the default stored on the feature.
Worked example
Acme inherits a plan and changes one limit.
The Analytics product defines advanced-reporting with a false default and seat-limit with a default of 5. The Growth plan sets them to true and 25. Acme's subscription overrides only the seat limit to 40.
Subscrio returns true for reporting and 40 for seats. If the override is removed, seats fall back to 25. If the plan value is also removed, the feature default returns 5.
What Subscrio handles
Subscrio resolves access. Your application decides when access changes.
The library keeps catalog relationships consistent and resolves the values stored in plans, subscriptions, and overrides. Your application maps signups, payments, plan changes, and cancellations to those records.
Rules in the Subscrio model
- Each plan belongs to one product.
- A plan can assign values only to features in that product.
- A subscription uses a billing cycle defined for its selected plan.
- An override can change only a feature available to that subscription.
- Resolution checks the subscription override, then the plan value, then the feature default.
Decisions your application owns
- When access begins after signup or payment.
- When upgrades, downgrades, and cancellations take effect.
- Whether access continues after a failed payment or during a grace period.
- How duplicate or out-of-order billing events are reconciled before access changes.
Implementation references
Continue from the model to the exact API.
Use the framework quickstart to install the library, then open the matching reference for catalog sync and feature resolution.
.NET entitlement library
Install Subscrio.Core, configure the database, sync the catalog, and resolve a feature.
QuickstartTypeScript entitlement library
Install subscrio, connect PostgreSQL, sync the catalog, and resolve a typed value.
API referenceConfiguration sync
See the JSON shape and programmatic sync methods for both libraries.
API referenceFeature checker
See the methods that resolve toggles, values, defaults, and subscription overrides.
Common questions
Questions about the Subscrio entitlement model
What is the Subscrio entitlement data model?
The model connects products, features, plans, billing cycles, customers, subscriptions, and feature overrides. Those records produce the feature value Subscrio returns for a customer.
How does entitlement resolution work in Subscrio?
Subscrio checks for a valid subscription override first, then a value on the selected plan, and finally the feature default. The first applicable value becomes the resolved result.
What happens when a plan has no value for a feature?
Subscrio uses the default value defined on the feature when the subscription has no override and the selected plan has no value for that feature.
Can a customer override a plan feature value?
Yes. Add the feature override to the customer's subscription. A valid override takes precedence over the plan value and the feature default.
Next step
Use the reference that matches your implementation.
The full documentation covers schema installation, migrations, hooks, Stripe integration, and every public service in both libraries.