Pricing
Two subscription tiers, Free and Standard. The customer is the person using Substratal’s apps and services: an individual who subscribes for themselves, or an Organization that subscribes for its members.
- The tiers
- Who pays
- Third-party Applications
- What a “user” means for an Organization
- How access follows the tier
- When a subscription lapses
- Why two tiers
- How the subscription is charged
- Keeping these numbers honest
The tiers
For most people, Free or Standard is all they’ll ever need.
| Free | Standard | |
|---|---|---|
| Price | $0 | $6.99 per user per month, or $76.99 per user per year |
| What it includes | Access to the Applications, features, and services Substratal designates as free. | Access to download and use every Substratal Application and service, including everything in Free. Third-party Applications are priced by their own developers (see Third-party Applications). |
| Who can subscribe | Every User, automatically, with no card required. | A User for themselves, or an Organization for its members. |
| Billing | None. | Monthly or yearly, USD, tax-exclusive. See How the subscription is charged. |
Free and Standard are the only tiers available today.
Business and Enterprise
Beyond Standard there will be business and enterprise pricing, tailored to an Organization’s specific needs, tenancy, and the geographic location of its data. It isn’t offered yet and has no published price. The infrastructure it will be built on is already specified: the isolated and dedicated_region Tenant tiers and the support-run tier-change process. Until business pricing ships, everything runs on the shared tier.
Who pays
Substratal bills the people who use Substratal’s own Applications directly, through this subscription. Nobody pays per Application: a Standard subscription covers every Substratal Application marked standard. Third-party Applications are a separate matter (see Third-party Applications).
There are two ways to be covered by Standard:
- Individual subscription. A User subscribes for themselves: one user, $6.99 a month or $76.99 a year.
- Organization subscription. An Organization subscribes for its members and pays $6.99 a month, or $76.99 a year, for each covered member (see What a “user” means for an Organization). An org admin chooses which members are covered, with the same
all_members/allowlist/denylistchoice that org-wide Entitlements already use.
A User covered either way has Standard access. Someone covered by an Organization can still subscribe individually. Both subscriptions are billed, and the User’s plan_sources lists both so a client can suggest cancelling one; nothing is refunded automatically. This subscription covers Substratal’s own Applications only (see Orders & Audit → Billing system of record).
Third-party Applications
A developer who adds their own Application to Substratal Apps sets their own price and charges in whatever way they want, or makes the Application free. It doesn’t need any particular payment processor, and Substratal takes no cut. Substratal Apps is its distribution, account, and settings layer.
The developer decides who gets in with the Application’s access_tier:
free: every User gets it, like Substratal’s free Applications.restricted(the default): only people the developer grants an Entitlement to, from their app’s backend with an app-scoped API Key, after whatever purchase, trial, or invitation they choose. A refund or a lapse on their side is aPATCHto that Entitlement. See Workflows → Purchase → access.
Standard never covers a third-party Application, and its users never need a Substratal subscription to use it.
What a “user” means for an Organization
An Organization is billed for each covered member: a distinct, non-test-mode User who is an active member of the Organization and is included by its subscription’s member selection. Suspended and deleted Users don’t count, and neither do pending invitations. A User who belongs to several Organizations that each subscribe is counted by each of them.
The count is provisioned, not activity-based. It counts who is covered, not who signed in this month, so an Organization can predict and budget against it.
The count is synced once a day, at 00:15 UTC.
- Monthly: no mid-period proration. Each invoice charges for the count on the day before it’s issued. Real-time sync with prorations was considered and not chosen: it’s more accurate, but noisier for customers.
- Yearly: members added during the year are charged a prorated amount for the rest of the year, invoiced the day the count changes. Without proration, the months before renewal would never be charged. Members removed are credited the same way, against future invoices.
A live subscription never counts test-mode Users, so integration tests can’t consume paid seats. A test-mode subscription is never charged and counts only test-mode members whose expires_at hasn’t passed. Test-mode Users last 24 hours by default and never more than 30 days, so test mode can’t stand in for a free production tier.
How access follows the tier
Every Application is designated either free or standard.
- A free Application is available to every active User.
- A standard Application is available to every User covered by Standard, through their own subscription or an Organization’s.
Access is still enforced through Entitlements and the access-control algorithm, exactly as for any other grant. The platform keeps them in step with each Application’s tier and each subscription (see Platform-managed Entitlements):
- Every User gets a
freeEntitlement to each free Application at signup. - A subscription that covers someone gives them a
subscriptionEntitlement to each standard Application: a personal one for an individual subscription, or one org-wide grant per Application for an Organization’s. - When an Application changes tier, or a new one is published, the platform grants or ends these Entitlements to match. An hourly job repairs anything that drifted.
An admin can still disable, and later re-enable, one person’s access to one Application, whatever their tier. Applications hear about every change through the usual access.granted / access.revoked webhooks.
When a subscription lapses
| Situation | What happens |
|---|---|
Payment fails (past_due) |
Nothing changes. The payment is retried automatically for about 3 weeks, and the customer is emailed. |
Subscription ends (canceled, unpaid, incomplete_expired, paused) |
Standard access ends at the end of the paid period. The User, or every member the Organization covered, drops to Free. |
| A member leaves an Organization, or the org admin stops covering them | They lose Standard access through that Organization at once. They’re no longer counted from the next daily sync. |
| Voluntary cancellation | Cancel at period end in the billing portal. Standard access continues until then. |
Dropping to Free never deletes anything. Profiles, settings, and per-user data in standard Applications are kept, and come back when the User is covered by Standard again. Only access to standard Applications stops.
Why two tiers
- Free is free, not just cheap. The first horizon in Growth trajectory is dozens of users, and the shared-tier cost of serving free Applications is near zero against the infrastructure floor that’s paid regardless. Charging for it would tax exactly the adoption the product needs most right now.
- One paid plan, for all of Substratal’s Applications. A single per-user price, paid monthly or yearly, is easy to understand and budget for, and works the same for one person or a whole Organization. Per-Application pricing would make every new Application a new purchasing decision.
- Infrastructure choice waits for business pricing.
isolatedanddedicated_regiontenancy carry a real, named infrastructure cost, driven by a customer’s own compliance or data-residency requirement. That’s what business and enterprise pricing is for, so neither is offered on Free or Standard.
How the subscription is charged
Free needs no card and has no billing account. Subscribing to Standard goes through a hosted Checkout page, and payment methods, invoices, and cancellation through the billing portal; both open from a URL this API returns (see API Reference → Billing). Standard is billed per user, monthly or yearly, in US dollars, plus applicable taxes. There’s no Standard trial: Free is the way to try Substratal’s apps.
Card data never touches this API. Payments are handled by a PCI-DSS Level 1 payment processor, which keeps PCI scope minimal (see Compliance); it’s one of the platform’s sub-processors (see Compliance → GDPR (and CCPA)).
GET /billing/prices returns the current prices, so a client never hard-codes them. The implementation (object mapping, webhook event handling, the daily quantity sync) is specified in the repository’s infra/README.md. It’s a build and operations concern, not part of the API Applications call.
Keeping these numbers honest
The prices on this page are kept in step by hand with the prices configured with the payment processor, which is what GET /billing/prices and Checkout use; infra/README.md says how to check them. It’s the same relationship Conventions → Machine-readable describes between this site’s prose and openapi.yaml. When business pricing is designed, the AWS Pricing and AWS Billing and Cost Management MCP servers are the way to ground its tenancy surcharges in live infrastructure cost rather than estimates.