Product Components

Components allow you to introduce additional “line items” to your Products that are often expressed as “add-ons”, upsold features, or pay-per-use items. See the blog post about quantity-based components that introduces the Components feature in general.

Components are defined at the Product Family level, and are therefore available to all Products within the Family.

Quantity-Based and On/Off Components associated with a Subscription are billed in advance along with the product, while Metered Component usage is billed in arrears. See Setting Component Allocations for more information.

Component Name

Give a name for this component that is suitable for showing customers and displaying on billing statements, i.e. “Text messages”

Unit Name

A name for the unit this component is measured in. Should be lower case and in singular form, i.e. “text message”. We may pluralize this value when constructing reports, i.e. “20 text messages”

Description

A description for the component that will be displayed to the user on the hosted signup page (if enabled below).

Tax Settings

Define whether or not the component is subject to taxes.

User Access

Define whether or not to allow a user to make updates to the component amount via the Billing Portal

Quantity Settings

Quantities are represented as whole numbers by default (i.e. 5 Licenses). This setting allows you to allocate partial quantities (i.e. 4.5 Minutes).

Display on Public Signup Pages

This setting will allow the component to be displayed on some (or all) of your Public Signup Pages. Your customer will be able to purchase additional components, depending on the pages they are displayed.

Recurring period for components

All components follow the same recurring period as the product that your Subscriber has purchased. For example, if you have a Subscriber that has purchased a product that has a recurring period of 1 month, the component applied to that Subscription will be charged every month.

This also applies to products that are annual, as well. If you have a product that has a recurring period of 12 months, charges for the component will be assessed annually as well.

Trial periods and components

Please pay close attention to when you add your components to a subscription. The moment when you add a component to a subscription can result in two different behaviours outlined below:

  • If product has trial, components added at time of signup are not charged. These will be charged at the time of the renewal. This will be the product cost + component cost.

  • If the component allocation is done during the trial period, after signup, the charges assessed will follow the pricing scheme is selected with the component allocation like normal.

Creating/Configuring Components Available for Product Families

Components are defined on the Product Family level, and are available to all Products within the Family. To create any Component for a Product Family, start on the “Products” tab and click “Create a Component”.

Next, you’ll be able to choose what type of component to create.

Setting Component allocations on Subscriptions

Once a Component has been defined for a Product Family, any Subscription to a Product within that Family may have usage or allocation data reported in order to assess charges for them at the end of the period.

For more information, please see Setting Component Allocations.

Quantity-based Components

This component type would be used when a Subscription is provisioned with a certain quantity of an item, and charges are calculated based on that quantity (i.e. “per-seat”). These components also give the ability to use different pricing schemes, such as per-unit, volume, tiered, and stairstep. Some examples:

  • IP Addresses – say your basic service offers 1 custom IP address for free, and extras can be purchased for $1 each
  • Extra Projects – say your project management service allows users to purchase extra “projects” a la carte for $5/each/month.
  • Software seats that cost $100/each when you buy 1-5, $90/each when you buy 6-10, etc.
  • Charge flat fees based on a number of customers (like how Chargify works):
    • 0-50 customers = $0
    • 51-500 = $49
    • etc

Each “widget” that you’ve reported to us as being in use is assumed to remain in use by that Customer until some future change. In other words, the quantity allocated does NOT reset to 0 at the end of the billing period. In contrast, Metered-usage component usages DO reset to 0 at the end of the period.

Creating Quantity-Based Components

Choose to create a “Quantity Based Component” and define it using the form.

Quantity Components support 4 “pricing schemes” via a dropdown select on this form: per-unit, volume, tiered, and stairstep. The latter 3 schemes (volume, tiered, and stairstep) allow you to define multiple price brackets (or “steps”), so you can charge different amounts depending on the quantity allocated.

Metered-usage Components

For Metered Components, you tell us every time one of your Customers uses some unit or units of your “widgets”. At the end of the billing period, Chargify will bill your customer for the total number of widgets used, and then we will reset the widget count to zero and the whole process starts over for the new billing period.

Note that this is different from Quantity-based components, which DO NOT reset to zero at the start of every billing period. If you want to bill for a quantity of something that does not change unless you change it, then you want Quantity Components, instead.

Some examples:

  • An email gateway provides 1000 credits per period, but allows you to send over your credit limit at a cost of $0.10 per email per period
  • A hosting company that charges for hours of compute time at a certain cost per hour

Creating Metered Components

Choose to create a “Metered Component” and define it using the form.

Creating a Metered Component works exactly like creating a Quantity Based Component (see above).

Once you have created a Metered Component, it will appear under the Product Family on the Products tab. You can make changes to the component by clicking the ‘Edit’ link

On/Off Components

This component type is used to elect “add-on” options where electing the option results in an extra charge. Some examples:

  • A web app offers an SSL connection upgrade at $5/month

Creating On/Off Components

Choose to create a “On/Off” and define it using the form.

An On/Off Component consists of 3 pieces of information:

  • Name: The name of the Component. i.e. Text Messages
  • Price: The amount the customer will be charged per unit

Once you have created an On/Off Component, it will appear under the Product Family on the Products tab. You can make changes to the component by clicking the ‘Edit’ link.


Pricing Scheme Overview

General Price Bracket Rules

  • No Overlap: Brackets may not overlap in quantity
  • No Gaps: Gaps in quantity are not allowed; however the lowest bracket need not start at 1
  • Defining Infinity: One bracket with a blank “ending quantity” is allowed – a blank value here indicates an unbounded quantity (∞)
  • Per-Unit or Per-Bracket: Prices should be given as “per unit” for per-unit, tiered, and volume pricing schemes. Prices for the stairstep pricing scheme are given as a cost for the entire bracket.

Per-unit Pricing Scheme

In a per-unit pricing scheme, prices are defined as per-unit costs, and all units cost the same. Thus, only 1 price bracket may be defined. If you define a component for “IP Addresses” that cost $1/each/period and a customer buys 3, then a $3 charge would be added at the end of the period.

Tiered Pricing Scheme

In the tiered pricing scheme, multiple price brackets define the prices at different quantity levels. Prices are given on a per-unit basis. Your customers will pay the defined price per unit for each allocated unit. An example can illustrate this the best. Say you allow your customers to purchase extra widgets to augment their monthly plan. The pricing structure is defined as follows:

Starting quantity Ending quantity Price Each
1 10 $2
11 20 $1

If a customer buys 10 units, they will pay $2 per unit, for a total of $20.

If a customer buys 20 units, they will pay $2 each for the first 10 units, plus $1 each for the next 10 units, for a total of $30 (10 x $2 + 10 x $1).

Volume Pricing Scheme

In the volume pricing scheme, multiple price brackets define the prices at different quantity levels, much like in the tiered scheme. However, unlike the tiered scheme, the price per unit for all units is determined by the prevailing price for the allocated quantity. So, taking the pricing setup from the earlier example:

Starting quantity Ending quantity Price Each
1 10 $2
11 20 $1

If a customer buys 10 units, they will pay $2 per unit, for a total of $20.

If a customer buys 20 units, they will pay $1 per unit for all units, for a total of $20.

Stairstep Pricing Scheme

In the stairstep pricing scheme, multiple price brackets are defined, but the pricing is given as a total cost for the whole bracket instead of per unit costs. This is how Chargify itself works.

Starting quantity Ending quantity Price Each
1 10 $10
11 20 $20

If 10 units are allocated (i.e. 10 paying customers), then the cost would be $10 total for this component.

If 20 units are allocated, then the cost would be $20 total for this component.

Fractional Allocations

Quantity component allocations are represented as whole numbers by default (i.e. 5 Licenses). Checking ‘Allow fractional quantities’ setting will allow you to allocate partial quantities (i.e. 4.5 Minutes). API representations of this component will return a decimal instead of an integer for the quantity values.

Archiving a Component

You may archive a component if you no longer wish it to be applied to new Subscriptions. Customers who are currently subscribed to a component will not be affected.

Step 1. Locate the component you wish to archive.

Step 2. Select ‘Archive’.

Step 3. You’ll be presented with a simple warning to ensure you understand the implications of archival.

To unarchive a component, simply locate the component under “Archived Items” and select unarchive to make the component available for purchase again.

Fractional Usages

Metered component usages are represented as whole numbers by default (i.e. 5 Licenses). Checking ‘Allow fractional quantities’ setting will allow you to allocate partial quantities (i.e 4.5 Minutes). API representations of this component will return a decimal instead of an integer for the quantity values.