This repo contains a library of commercial models following the open standard "commerce.yaml", which codifies the necessary infromation for describing, building, and integrating a commercial model into a digital product or service.
The repo contains a base-template, available at base-template/base.yaml, which you can use to get started building a model from scratch.
In order to build a commercial model, there are a two basic areas things to consider:
Products are built on features: defined sets of value that are delivered to your users. Features can be as simple as an action a user can take, or the amount of times a user can use a specific feature.
- Feature Examples - "Time Tracking App"
- Log time on an issue
- Export to CSV
- Share your status with your team
- Report on your time logged
Entitlements are bundles of features that describe a discreet set of functionality to your end user. This comibnation of features will be used when building your Plans and your Pricing strategies.
- Entitlement Examples - "Time Tracking App"
- Data Export tools
- Enterprise Tier
With your features and entitlements defined, you can move to building your pricing and plans. Currently the Open Markets standard enables 4 basic commercial models:
- One-Off - This model has a single transaction, in return for (often, lifetime) access to product features
- Flat-Rate - Like a one-off purchase, but sold in a recurring revenue model at a single price standard price
- Team-Based - Access to the product is sold to more than one user, typically in groups/teams at a consistent price
- Graduated Tiers - A form of team-based billing where the price per user changes based on the total number of users in the team/business
- Consumption Billing - A model that charges the user for each execution of a feature, rather than (un-restricted) access to the feature.
With all of this in mind, you should be able to answer a few questions:
- What is your product called?
- What are the key features that makes your product useful to your users?
- Are there similar features and functionality that can be combined in "groups" of entitlements?
- Which of your features are valuable enough that users might pay you for them?
- Should your customers pay you once, or on a recurring basis (e.g. SaaS)? How often should they pay you (e.g. monthly/annually)?
- Are there features that users would be willing to pay each time they used the feature?
- Are you selling to an individual user, or a team/business?
- Should your customer pay you one-time, or on a recurring basis, for your product (e.g. SaaS)?
- How often do you want to collect money from your customer? (e.g. Monthly, Annually)
You can use the CLAUDE.md provided in this repo, and Claude Code, to automatically generate your commercial model yaml. Once Claude Code is installed and activated, you can simply ask Claude to generate you a new model.
If you are chosing a metered priceType in your lineItems, you will need to set the billingScheme to be either per_unit or tiered. Per unit sets a standard price for each use of the feature. If you are trying to make a more complex model, where different tiers of usage (0-10, 11-200, e.g.) are different prices, you should choose "tiered" for the billing scheme. If you choose tiered, you will need to set the tiersMode to be one of graudated or volume. Graduated allows you to set different tiers of cost per usage. Volume is a special type of tiering which allows a user, once they cross a threshold of usage, to get a discounted rate per use. Setting the price of the different tier types is done in the prices section of the yaml file.