Plans are a core component of the Product Catalog. Plans define the pricing and entitlements your customers receive in Konnect Metering & Billing. They act as reusable templates that describe what a customer gets and how they are charged. Each plan can include multiple phases, prices, and entitlements, and can be versioned.
Plans can take different forms, for example:
- $99 per month for 1 million API requests
- 10 GB storage included
- SAML or SSO support
Plans are built from rate cards, which determine which features a plan can access, the price, and how much of a feature they can use (called entitlements). Rate Cards define the configuration of features that subscribers will be entitled to and charged for.
For example, to set up the previous example plan, you’d use the following rate cards:
|
Feature
|
Price
|
Entitlement
|
|
AI Tokens
|
$99/m
|
1,000,000 /m
|
|
Storage
|
$0/m
|
10 GB /m
|
|
SAML SSO
|
$0/m
|
True
|
Rate cards can be configured with or without a feature:
-
With a feature: Rate cards with features can be priced as recurring, one-time flat, or usage-based. Rate cards with features can have an entitlement to control access. When the associated feature has a meter, the rate card can describe usage limits.
-
Without a feature: Rate cards without features can only have a flat-fee price. Rate cards without features don’t have an entitlement to control access.
Add-ons let you extend your plans with optional features or capacity that customers can purchase on demand. They are versioned and consist of one or more rate cards defining pricing, entitlements, and billing cadence independently of the base plan. Add-ons allow you to sell extra features, overage packs, or services without changing the core plan.
Rate cards offer several different pricing models, listed in the following table:
|
Pricing model
|
Description
|
|
Free
|
Free pricing
|
|
Flat fee
|
A one-time or recurring fee
|
|
Usage based
|
Linear pricing based on metered usage
|
|
Tiered
|
Tiered pricing based on metered usage
|
|
Package
|
Pricing based on fixed-sized usage packages
|
|
Dynamic
|
USD prices created dynamically from meter values
|
Besides the Free pricing model, other models require configuration that you can see from the Konnect UI.
Metering & Billing doesn’t calculate taxes itself. Instead, it configures external services to do so with Product Catalog. Currently, Metering & Billing supports Stripe Tax.
Metering & Billing supports the following tax settings:
- Inclusive: The listed price already includes tax. A 10% inclusive tax on a $500 item still results in a $500 invoice.
- Exclusive: Tax is added on top of the listed price. A 10% exclusive tax on a $500 item raises the invoice total to $550.
- Tax codes: Apply a tax code to a feature. Some payment providers, like Stripe, apply their own default tax code. In those cases, you can leave Metering & Billing’s tax settings blank.
You can enable tax collection from a Rate Card or the billing profile settings.
In Metering & Billing, you can define the tax behavior on multiple levels, from lowest to highest precedence:
|
Use Case
|
Setting
|
|
Fallback to the tax behavior of the payment provider, like Stripe.
|
Payment provider
|
|
Define the default tax behavior, if any, for all customers.
|
Billing profile
|
|
Override the default tax behavior on a per Rate Card basis.
|
Plan Rate Card
|
|
Override the default tax behavior on a per-subscription basis.
|
Subscription Rate Card
|
|
Override the tax behavior per invoice line item.
|
Invoice
|
We recommend setting the tax behavior on the payment provider level if you use Stripe for tax calculation. Tax behavior is optional at the billing profile, plan rate card, and subscription rate card levels.
When tax enforcement is enabled, Metering & Billing prevents you from starting a subscription if automatic tax calculation isn’t supported. When enforcement is enabled, the following actions are blocked:
- Creating a paid subscription when tax cannot be calculated
- Finalizing an invoice when tax cannot be calculated
- Validation logic also varies by tax service. For example, with Stripe Tax, Metering & Billing uses Stripe’s APIs to verify whether tax calculation is supported for the customer. In that case of Stripe, the customer must have a valid tax location.
Entitlements are used to control access to different features, they make it possible to implement complex pricing scenarios such as monthly quotas, prepaid billing, and per-customer pricing.
Entitlements can help you implement various monetization strategies:
- Enforce usage limits, like monthly token allowances.
- Sell plans with various feature sets.
- Offer custom quotes and per-customer pricing.
- Adopt prepaid billing and grant usage, and handle top-ups.
- Define and track pre-purchase commitments.
There are three different types of entitlements:
|
Type
|
Description
|
|
Metered
|
Allow customers to consume features up to a certain usage limit, e.g., 10 million monthly tokens.
This is useful for example when the underlying resources are expensive, as is the case for most AI products. Metered entitlements leverage the usage information collected by OpenMeter and give you the ability to do real time usage enforcement as well as historical queries and access checks.
|
|
Static
|
Define customer-specific configurations as a JSON value. e.g. { "enabledModels": ["gpt-3", "gpt-4"] }
For example, you may only give free users access to a subset of AI models. With static entitlements, you can specify which models the customer can use based on their tier.
|
|
Boolean
|
Describe access to specific features, like SAML SSO, without needing configuration or metering.
In cases where you don’t need to set up usage limits or configure customer level settings you can use boolean entitlements. These are simple true or false access grants to a feature.
|
Plans are versioned to allow you to make changes without affecting running subscriptions. Each plan can have one published and one draft version. Editing already published plans will create a new draft version. Once you are ready, you can publish the draft version.
Subscriptions are bound to a specific version of the plan and can be migrated to a new version.
A plan can have multiple phases, such as a free trial for the first 30 days and then converting to a paid plan after the 30 days are up. Each phase can have a different price and entitlement. Phases can be used to create automatic time-based offering changes, like trials, reverse trials, ramp-up phases.
Example for reverse trials with plan phases:
- Phase 1 (Trial): limited to 100,000 tokens, premium features included
- Phase 2 (Free): limited to 1,000 tokens