Skip to main content

Build your product catalog

Since Orb automates recurring billing, customers in Orb maintain subscriptions to your product. Subscriptions are associations between a customer and a plan.

Plan

A plan is a standardized set of pricing terms, and corresponds to a specific tier of functionality within your product. Depending on the nature of your business, many customers might be assigned to the same plan (e.g. when a visitor upgrades to the “Pro” plan listed on your website), and some customers may have their own one-off plans (e.g. the “Enterprise” offering with negotiated terms and feature set).

create_plan_flow.png

Component prices

A plan is a collection of prices, where each price corresponds to a charge you display on your customer’s invoice (also known as a line item). At their core, prices need to be configured with a cadence (how often to charge), and a pricing function (how much to charge for a given quantity).

Prices can be categorized as:

  • Usage-based prices, which are always attached to a single billable metric. The billable metric determines the quantity, and the price determines the amount to charge based on its pricing model.
  • Recurring fixed prices, which simply apply a fixed charge on a cadence. A common example is a platform access fee, or a per-user fee where the number of users is known up-front.

Standard price models

Price modelDescriptionExample
UnitA simple, linear price that scales with the total units of usage.$0.80 per API request
TieredThe cost of a unit depends on the tier range it falls into. Normally, each incremental unit will get cheaper as usage hits reach higher tiers.$5/GB for the first 100GB, $10/GB thereafter
BulkThe total number of units determines the cost of all units. Typically, reaching a higher tier value will decrease the price per unit.$0.20/page processed, discounted to $0.10/page if 10,000 pages consumed
PackageUnits are rounded up to a specified granularity level for pricing.$1 per 100 asynchronous jobs
BPSConfigure a basis-points take rate and maximum price per transaction. Also available in bulk and tiered configurations.$0.20 per payment processed
MatrixConfigure a grid of unit prices for each combination of properties.$0.05/GB for cold storage / us-east-1
$0.08/GB for hot storage / us-east-1
$0.03/GB for cold storage / us-west-1
$0.08/GB for hot storage / us-west-1

Custom prices

Orb's extensible platform approach makes it simple to deploy custom prices onto the platform using Python, so you're not limited by Orb's standard price models. Pricing models taking a flexible number of parameters are fully configurable via the Orb UI. See custom pricing platform for how these prices are set up.

Adjustments

Orb provides rich support for creating adjustments like discounts, minimums, and maximums that modify your pricing. When creating an adjustment, you specify the set of prices that it applies to, allowing you to create adjustments that apply at the plan level (applying to many or all of the plan's prices), as well as for an individual price (a single line item on your invoice).

Discounts

Orb allows the creation of discounts to decrease the amount charged for a price or set of prices.

Discounts can optionally expire after a certain number of billing periods, which make them ideal for limited-time contract terms. This prevents you from having to manually orchestrate a plan change for your subscription to provide new pricing or to remove a discounted term.

Orb supports multiple discount models:

  • Usage-based discounts, which decrease the quantity of a price. You can this discount to represent a free allocation, such as decreasing the number of units processed by 300. Usage-based discounts are compatible with all pricing models, not just simple unit prices.
  • Amount discounts, which decrease the line item or invoice total by a certain flat dollar amount. A custom term that decreases a customer’s invoice by $100 each month would use this discount model.
  • Percentage-based discounts, which decrease the invoice or invoice line item by a percentage of their subtotal. This can be used to provide 20% off recurring storage costs for the first year of a subscription.

Minimums

In addition to discounts, you may want to represent commitments to a dollar amount in Orb by using minimums. Setting a minimum amount ensures that the total of the invoice or invoice line item is at least a specific threshold. If the minimum threshold isn’t met, Orb will automatically add a line with the difference between the minimum threshold and current subtotal.

Just like discounts, minimums can optionally expire after a set number of billing periods.

Maximums

Additionally, you can represent spend caps for a plan by creating maximums for a price or set of prices. When you set a maximum, Orb ensures that the total charge for the prices included in the maximum do not exceed the specified threshold. If the calculated charge would surpass the maximum, Orb automatically applies a discount to bring the total down to the maximum amount.

Like discounts and minimums, maximums can be configured to expire after a certain number of billing periods. This feature is particularly useful for implementing capped pricing models or for providing temporary upper limits on charges during promotional periods or as part of specific contract terms.

Plan phases

Subscriptions will often have a pre-decided schedule of changes, such as a change in the pricing after a limited period or an increase in the committed spend after a fixed number of months into the subscription.

Instead of having to modify a subscription’s plan manually, plan phases provide an automated way to encode these steps into the definition of the plan itself. By default, each plan has a single phase, which means that no changes are scheduled to pricing terms.

Configuring plan phases simply requires specifying a duration in billing terms, and optionally a description for what the phase represents (e.g. initial 6-month commitment). A phase switch always happens at the end of a billing period, which means that a single subscription invoice will not contain charges from prices in multiple phases. Note that the last phase of any plan is an evergreen phase, which signifies that it will continue indefinitely until the end of the subscription.

Trials

A subscription can start with a free trial, during which your users can use the product without paying. A trial inherits the first phase of your plan’s pricing configuration, excluding any fixed fees specified. For example, if you usually charge a $500 platform access fee in-advance every month and a fee for storage charges, the trial period will only track storage charges. Even during a trial, Orb provides complete visibility into your customer’s usage and the charges that would normally be associated with them.

A trial is configured with a duration in days, which represents the time period before the customer starts paying for their incurred usage. Orb also allows you to specify a maximum usage amount in dollars, which lets you limit how much consumption is discounted on the trial invoice. At the end of the trial’s duration, Orb will always generate a single invoice that breaks down the usage charges, and includes an additional trial discount line item. The discount line item will be at most the maximum usage amount.

Orb also allows you to extend a trial period while a trial is still active, which is often useful as a sales lever to provide your customers more time to try your product. When a trial period is extended, Orb will continue to discount usage charges up to the maximum amount, if configured.

Billing cycle configuration

Prices in Orb must have a billing cycle configuration, which specifies the duration and whether the price recurs. One-time prices produce a single line item with the specified duration (e.g. a 3 month implementation fee). Recurring prices produce a series of line items spaced at the specified duration (e.g. a monthly usage price). Orb exposes a set of standard configurations (e.g. quarterly), but also allows for customization of the billing cycle (e.g. a 478 day one-time fee).

Invoicing cycle configuration

The billing cycle specifies period over which a price should be evaluated, but this may not match the frequency at which invoices should be produced. For example, consider an quarterly tiered price with the following configuration:

  • 0 - 10: $1 per unit
  • Over 10: $2 per unit

If the customer uses 10 units per month, we'd expect to invoice $50 (10 $1 + 20 $2) over the quarter. This is different from the same tiered price billed monthly, where we'd bill a total of $30 (3 separate $10 invoices) over the quarter. However, if we set the billing cycle to quarterly and the invoicing cycle to monthly, we can still bill the correct $50 while producing an invoice each month ($10, $20, $20).