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.

ObjectDefinitionExample key
ProductA software product with its own features and plans.analytics
FeatureA named capability, limit, or text value with a type and default.seat-limit
PlanA package inside a product that assigns values to features.growth
Billing cycleA timing option attached to a plan and used when creating a subscription.growth-monthly
CustomerAn account from the host application, addressed by a stable key.acme
SubscriptionAn active or dated assignment between a customer and a plan billing cycle.acme-growth
Feature overrideA value attached directly to a subscription, with permanent or temporary behavior.seat-limit = 40
Resolved valueThe 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.

Keep usage metering separate.

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.

Toggleadvanced-reporting = true
Numericseat-limit = 25
Textretention-policy = 90-days

Entitlement 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.

  1. Subscription overrideReturn a valid explicit value on the subscription.
  2. Plan feature valueOtherwise return the value configured on the assigned plan.
  3. 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.

Defaultreporting: false · seats: 5
Growth planreporting: true · seats: 25
Acme overrideseats: 40
result: reporting = true · seats = 40

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.

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.

Open full documentation

Screenshot preview