Customers
A customer represents an end user or account in your system.- It is not a Stripe customer
- It is not a subscription
- It is an identity you control
Prices
A price represents something a customer is billed for. In Stripe terms, this maps directly to a Stripe Price (price_...).
In PriceOS:
- A customer can have one or more prices
- Each price may have a quantity (for add-ons like seats)
- Prices are the only billing-aware objects
PriceOS never calculates money — it only records what a customer is paying for.
Products
A product represents a bundle of functionality. Think of a product as:“A specific version of a plan”Examples:
Starter v1Pro v3Enterprise v2
- Change features for new customers
- Keep existing customers on their original terms
Product Versions
A product version is immutable. Once created:- Its feature access never changes
- Existing customers are permanently tied to it
- You create a new product version
- New customers link to the new version
- Existing customers stay where they are
Feature Access
Feature access defines what a product version allows a customer to do. There are two supported types:Boolean features
Used for on/off capabilities. Examples:- AI Images enabled
- API access
- Export functionality
Limit-based features
Used for counts, seats, or quotas. Examples:- Team members
- Monthly usage limits
- Credits
- Multiple products
- Quantities on prices
How access is calculated
At runtime, PriceOS follows a deterministic process:- Identify the customer
- Load the prices they are subscribed to
- Resolve those prices to product versions
- Aggregate feature access across products