Entitlements built for the AI era

Plans, add-ons, limits, and feature flags for SaaS and AI products, defined as data and enforced inside your product. Works with Stripe.

MacabacusAutomoxPlotlyPickleheadsBigCommerceHannon HillTightknitZepSema4.aiSyrtoMakeswiftWobbyPagos
app.acmerobotics.com/research
Acme Research3,200 credits

Ask anything about your accounts. A research run uses up to 25 credits.

Credits this month3,200 of 5,000 left
Resets Dec 1Buy more credits
Summarize Q3 churn by plan
acme-app/research/run.ts
async function research(prompt) {
// check, and hold 25 credits
const ok = await client.checkFlag(
{ company }, "research")
if (!ok) return showBuyCredits()
return agent.run(prompt)
// usage commits as it reports
}
checkFlag → true 3,200 available
SchematicCatalogPro plan
AI creditsGranted each month5,000
Research runBilled per token, up to25 credits
Credit packBought when running low+10,000
SchematicCredit ledgerAcme Robotics
Available3,200/ 5,000
Used this month1,800 credits
Held for runs0 credits
Balance before the run.

Pricing changes shouldn't need a sprint.

Stop hardcoding plans

Every if plan == "pro" becomes a catalog entry. New tiers and limits ship without a deploy.

Exceptions get an expiry date

Sales promises become company overrides with an end date, not hand-edited rows someone has to remember.

Billing and access stay in sync

Stripe says Pro, the product shows Pro. A two-way sync replaces the webhook glue.

Limits warn before they block

A usage warning in your app, a webhook at the soft limit, and a hard stop you never had to code.

How entitlement management works

From a feature in your product to a plan a customer can buy, in four steps and one check.

Define features

Boolean (SSO on or off), event-based (API calls a month), or trait-based (seats).

Feature types →

Package plans and add-ons

One plan per company, any number of add-ons. Where they overlap, the most permissive entitlement applies.

Concepts →

Check access in code

Pass a company key and a flag key. Schematic already knows the plan, overrides, and traits.

Flags →

Connect Stripe

Map Stripe products to plans. A subscription provisions entitlements; a cancellation removes them.

Provisioning →
export.tsx
import { useSchematicFlag } from "@schematichq/schematic-react"
const canExport = useSchematicFlag("bulk-export")
if (!canExport) {
return <UpgradePrompt feature="bulk-export" />
}
// acme-robotics → true via plan entitlement (Pro)

One flag check. The answer already reflects the company's plan, overrides, and usage.

Under 50 ms

How the check resolves

  1. 1Plan and add-on entitlementsThe plan's grants, and any add-ons on top.
  2. 2OverridesA company's exception wins over its plan, with an end date if you set one.
  3. 3No match: off by defaultThe check returns false and the feature stays disabled.

Move pricing out of your codebase

Plans, limits, flags, and overrides become data you change without a deploy.

Your infrastructure
Your appcheckFlag()
SDKin process · WebAssembly rules · cache
push
Schematic
Catalogplans · overrides · usage
APIp99 < 50 ms
Resolution order
  1. In-process cacheno round trip
  2. Schematicfirst load · p99 < 50 ms
  3. Your defaultuntil the first sync

Checks resolve inside your app

The SDK keeps your catalog, overrides, and usage in process and decides each check there. Changes stream to your app, so a check reflects them in real time.

Catalog · PlansPublished
FeatureFreeProEnterprise
Seats310 → 15Unlimited
API calls / month1,00050,000Custom
SSO——✓
Add-onsExtra seatsPriority support· Trial · 14 days of Pro

Every plan and limit, defined as data

Plans, add-ons, trials, and credit bundles. One catalog.

API calls· Acme Robotics · Pro41,200/ 50,000
usage warning at 80% · shown in your app82%
SOFT LIMITwebhook → nudge in-app
HARD LIMITcheck returns false
PREFLIGHTsize the run first
usage.warning · 80%webhook delivered
usage.limit · 100%not yet this period

Warn before the limit, enforce at it

Warnings, limit webhooks, and preflight checks.

ai-summariesFLAG
1Plan · Enterprise→ on
2Add-on · AI pack→ on
3Override · Globex · until Dec 1→ on
Everyone else→ off

Gate features by billing state

A boolean entitlement is a feature flag that reads the subscription. Turn a feature on for a plan, an add-on, or one company.

GGlobex· ProOVERRIDE
Seats10→25
ai-summarieson
EXPIRES NOV 13, 2026from UI or API

Built for sales-led deals

Grant one company an override with an end date, or a custom plan, without a ticket.

Prov3→v4DRAFT
API calls / month50,000→100,000
Migrate everyone
Choose companies· 212 of 1,480
Keep current, new checkouts get v4

Iterate on pricing with plan versions

Legacy and current pricing run side by side. You decide if and when each company moves.

Works with Stripe, and the rest of your stack

A two-way sync keeps Stripe and Schematic aligned. Auth and CRM data arrive through the integrations below.

Stripe
Customers1,480
Products→ plans
Subscriptionsactive
Meter events← usage
subscription.createdentitlements provisioned
subscription.updatedplan changed in-app
meter eventsusage metered once
Schematic
Catalogplans · add-ons · trials
Entitlementsresolved per company
Flagsone check in code
Usagemetered once

Customers and subscriptions import once

Schematic syncs with Stripe, no migration or parallel billing required.

Stripe products map to plans

Entitlements are automatically provisioned according to the subscription.

Changes flow back

Plan changes made in Schematic update the subscription. Metered usage lands as meter events.

Integrate in an afternoon

Most teams arrive with a plan column and a pile of if-statements. Move them one check at a time, with the old branch still in place until the new one is live.

  1. 1Define your featuresBoolean, event-based, or trait-based. Name them the way your code already does.
  2. 2Map plans to Stripe productsCustomers and subscriptions import once, then stay in sync. Nothing moves off Stripe.
  3. 3Wrap the first checkOne SDK call beside the branch it replaces. Ship it behind your existing plan column.
  4. 4Delete the branchThe plan column goes. The next tier, limit, or exception is a catalog change, not a deploy.

Entitlements for every pricing motion

Same catalog, same check. Four ways teams use it in production.

Good-better-best plans

Gate SSO and audit logs to Enterprise, cap seats on Pro, and change either without a deploy.

Sales-assisted trials and POCs

Give a prospect a time-boxed run of the tier above. Access reverts on its own; a closed deal converts.

AI features and agents

Track usage per user, people and agents alike, against one company pool. Preflight expensive runs.

Custom enterprise deals

A negotiated contract becomes a custom plan with its own limits, synced to its Stripe subscription.

Automox
“We chose Schematic because it provided the flexibility to launch, package, meter, and monitor features from one place without having to continue maintaining a homegrown system or constantly involve engineering.”
Brian WleklinskiSenior Manager, Growth & Digital, Automox
less time to launch new pricing tiers

Pricing and packaging were hard-coded in application code, and a new tier took over three months to launch.

Read the Automox story →

Schematic vs. the alternatives

Build it, bolt it onto Stripe, stretch a flag tool, or use Schematic. Billing tools and release flag tools do different jobs. Entitlements sit between them.

SchematicSchematic
Build in-house
Stripe Billing + Entitlements
Release flag tool
Plans, add-ons, and limits as config
Yes, one catalog
You build it
Features on products; limits in your code
Long-lived targeting on segments, maintained by hand or synced
Runtime access check
One SDK call, under 50ms with local caching
You build it and the cache
Your app provisions from a webhook
Yes, built for releases
Usage limits per plan
Event- and trait-based
You build it
In your code
Not in the flag model
Overrides with expiry
Yes
You build it
Edit the subscription
Per-customer targeting
Plan versions and migration
Choose who moves
You build it
Feature changes apply next billing period
A different job
Credits held for in-flight work
Leases and reservations
You build the ledger
Not built in
Not in the flag model
Spend caps per hour or per user
Hourly, daily, and per-draw
You build it
Not built in
Not in the flag model
Trials that convert or revert
Converts or moves to a fallback plan
You build it
Subscription trials; access in your code
Targeting removed by hand
Stripe subscription sync
Two-way
You build the webhooks
Native
Not built in
Best for
Access tied to what customers pay
Unusual needs, spare engineers
Payments, invoices, and tax
Release safety and experiments

“We were looking for an entitlement platform, and if we had to build one ourselves we would have to relearn all the lessons Schematic has over the years. It is not really Schematic versus anyone else. It is Schematic versus being dumb and building it.”

SyrtoPietro FarielloCTO, Syrto

Built for enterprise

Fast, secure, reliable.

SOC 2 · AICPAGDPR compliantGDPRCOMPLIANTStripe Verified Partner

Availability

  • 99.99% uptime SLA
  • 24/7 support
  • Public status page
Availability docs

Security

  • SOC 2 Type 2 compliant
  • PCI Level 1 via Stripe
  • GDPR compliant, SSO and 2FA
Security docs

Observability

  • Audit logs and real-time events
  • Client-side rule evaluation
  • Replicator: reads stay in your network
Observability docs

Frequently asked questions

Short answers, each one backed by the docs. Still stuck? The docs and the demo both go deeper.

An entitlement is the right to use a feature, defined by the relationship between a plan or add-on and that feature. It can be on/off access, a trait-based limit like seats, or a usage allowance.

Stop hard-coding your pricing

Start free with unlimited feature flags and up to 10 monetized subscriptions. Paid plans from $400 a month.