---
title: "Price usage and commitments"
description: "Bill usage with tiers, volume or packages, invoice usage monthly on an annual plan, set a minimum commitment, and show customers their usage so far."
canonical_url: "https://twominutebilling.com/help/guides/usage-and-ai-billing/usage-pricing"
---
# Price usage and commitments

> Bill usage with tiers, volume or packages, invoice usage monthly on an annual plan, set a minimum commitment, and show customers their usage so far.

Usage pricing bills what a customer used in a period, after the period ends. This guide covers
the pricing models you can put on usage, monthly usage invoices on an annual plan, a minimum
commitment with a true-up at the end of the term, and where you and your customers see usage
before it is billed.

Your app sends the usage. There are two ways: **usage records** on a subscription item, covered
here, and **usage events** counted by a meter, covered in
[Meters and rate cards](https://twominutebilling.com/help/guides/usage-and-ai-billing/meters-and-rate-cards). The pricing
models below work for both.

## Price usage with tiers, volume or packages

<steps>

### Open the product

Open **Product Catalog**, then the plan, add-on or charge that you bill usage for, and select
**Add price**. Set **Billed** to **Recurring**, so the price has a period to bill.

### Select the pricing model

Select **Pricing model**. For usage, select **Usage** for one rate per unit, or one of the models
in the table below.

### Bill from recorded usage

For the tier, package and percentage models, set **Bill from** to **Recorded usage**. With
**Subscription quantity**, the same model prices the quantity on the subscription instead, such as
a seat count.

### Select how usage is combined

Set **Usage aggregation**: how we combine a period's usage records into one quantity. See
[Seats and storage that carry over](#seats-and-storage-that-carry-over).

### Enter the tiers

Add a row for each tier with **+ Add tier**. **Up to (units)** is the top of the tier. Leave it
empty in the last row for no upper limit.

</steps>

<table>
<thead>
  <tr>
    <th>
      Model
    </th>
    
    <th>
      How it prices the period's quantity
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Usage
      </strong>
    </td>
    
    <td>
      Each unit at the <strong>
        Rate per unit of usage
      </strong>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Tiered
      </strong>
    </td>
    
    <td>
      Each unit at the rate of its own tier. A tier's <strong>
        Flat fee
      </strong>
      
       is added when usage reaches that tier.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Volume
      </strong>
    </td>
    
    <td>
      All units at the rate of the tier that holds the total, plus that tier's flat fee.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Stairstep
      </strong>
    </td>
    
    <td>
      One <strong>
        Price for the band
      </strong>
      
       that holds the total.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Package
      </strong>
    </td>
    
    <td>
      A <strong>
        Price per package
      </strong>
      
       for each bundle of <strong>
        Units per package
      </strong>
      
      . We round a partial bundle up. <strong>
        Free units
      </strong>
      
       come off first.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Percentage
      </strong>
    </td>
    
    <td>
      A <strong>
        Percentage
      </strong>
      
       of the amounts that your app reports, less a <strong>
        Free amount
      </strong>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Graduated percentage
      </strong>
    </td>
    
    <td>
      Each part of the reported amount at the rate of its bracket.
    </td>
  </tr>
</tbody>
</table>

A quantity equal to the top of a tier stays in that tier. For example, with tiers up to 1,000 units
at $0.10, up to 5,000 at $0.05 and $0.02 above that, a customer who used 6,200 units pays:

<table>
<thead>
  <tr>
    <th>
      Model
    </th>
    
    <th>
      Sum
    </th>
    
    <th>
      Amount
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Tiered
    </td>
    
    <td>
      1,000 × $0.10 + 4,000 × $0.05 + 1,200 × $0.02
    </td>
    
    <td>
      <strong>
        $324.00
      </strong>
    </td>
  </tr>
  
  <tr>
    <td>
      Volume
    </td>
    
    <td>
      6,200 × $0.02
    </td>
    
    <td>
      <strong>
        $124.00
      </strong>
    </td>
  </tr>
  
  <tr>
    <td>
      Volume, exactly 1,000 units
    </td>
    
    <td>
      1,000 × $0.10
    </td>
    
    <td>
      <strong>
        $100.00
      </strong>
    </td>
  </tr>
</tbody>
</table>

A package price of $30.00 per 100 units with 50 free units bills 1,234 units as 12 packages
(1,184 ÷ 100, rounded up): **$360.00**.

A period with no usage has no usage line, whatever the model. To charge a floor anyway, set a
**Minimum spend** on the price: if the charge for a period is less, we add the difference as a
"Minimum spend adjustment" line.

On the invoice, the usage line shows how it was priced: the free units, one row for each tier
("Units 1 to 1,000: 1,000 × $0.10 = $100.00"), and the level for a usage that carries over. The
PDF prints the same rows.

<note title="Fixed after create">

You cannot change the pricing model, **Bill from**, **Usage aggregation**, the carry-over switch or
the time unit after you create the price. Create a new price, and move subscriptions to it with a
plan change.

</note>

In the dashboard, a price on a meter uses the **Usage** model with a rate card. To put tiers,
volume or packages on a meter, create the price
[from the API](https://twominutebilling.com/help/developers/recipes/meter-usage-events#price-the-meter).

## Seats and storage that carry over

Some usage is a level, not a count: seats in use, gigabytes stored. Turn on **Carry the level to
the next period**, and the level stays until a new usage record changes it. A period with no new
records still bills.

<table>
<thead>
  <tr>
    <th>
      Usage aggregation
    </th>
    
    <th>
      Each record means
    </th>
    
    <th>
      The period bills
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Sum
      </strong>
    </td>
    
    <td>
      A change to the level, such as +5 or −2
    </td>
    
    <td>
      The highest level in the period
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Last value
      </strong>
    </td>
    
    <td>
      The new level
    </td>
    
    <td>
      The level at the end of the period
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Maximum
      </strong>
    </td>
    
    <td>
      The new level
    </td>
    
    <td>
      The highest level in the period
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Unique keys
      </strong>
    </td>
    
    <td>
      A key added or removed
    </td>
    
    <td>
      The highest number of keys at one time
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Time-weighted sum
      </strong>
    </td>
    
    <td>
      A change to the level
    </td>
    
    <td>
      The level multiplied by the time it was held
    </td>
  </tr>
</tbody>
</table>

The other aggregations (**Count of records**, **Minimum**, **Average**) start again from zero each
period.

**Time-weighted sum** bills unit-hours or unit-days (set **Time unit**), rounded to the nearest
whole unit once for each period. It is the fair way to bill a level that changes inside the
period. For example, in a 30-day period: 100 GB carried in, 50 GB added after 10 days, 30 GB
removed after 25 days. That is 100 × 240 + 150 × 360 + 120 × 120 = **92,400 GB-hours**, and the
next period starts at 120 GB.

## Bill usage every month on an annual plan

An annual plan can bill its usage every month, in arrears, while the plan fee stays on the
annual term. Without it, usage waits for the renewal invoice at the end of the year.

<steps>

### Turn it on for the plan price

On the plan's price, in the **Billing period** section, turn on **Bill usage every month**. The
switch shows for prices billed every year, or every 2 months or more. It applies to new
subscriptions.

### Use monthly usage prices

Put a monthly usage price on the subscription. Its tiers, free units and minimum spend then apply
to each month.

### Check the subscription

When you create a subscription, **Bill usage every month** is preselected from the plan price, and
you can change it. On the subscription, **Subscription configurations** shows **Usage billing:
Every month** and the date of the next usage invoice.

</steps>

At the end of each month of the term, the customer gets an invoice for the month's usage, plus any
pending one-time charges. It has no plan fee and no commitment line. A month with nothing to bill
has no invoice. The last month's usage goes on the renewal invoice with the next year's plan fee.

For example, an annual plan from 1 January with a $2 per-call usage price:

<table>
<thead>
  <tr>
    <th>
      Invoice
    </th>
    
    <th>
      Bills
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      1 January
    </td>
    
    <td>
      The plan fee for the year
    </td>
  </tr>
  
  <tr>
    <td>
      1 February
    </td>
    
    <td>
      January's calls
    </td>
  </tr>
  
  <tr>
    <td>
      1 March … 1 December
    </td>
    
    <td>
      The calls of the month before
    </td>
  </tr>
  
  <tr>
    <td>
      1 January next year
    </td>
    
    <td>
      December's calls, and the plan fee for the new year
    </td>
  </tr>
</tbody>
</table>

To change monthly usage billing on a live subscription, change to a plan price with the other
setting at the end of the term, or reset the term. An immediate change that keeps the term is
refused.

## Set a minimum commitment

A minimum commitment is the least a customer pays in each billing period of the plan. If the fees
are less at the end of the term, we bill the difference on one line.

<steps>

### Set it on the plan price

On the plan's price, in the **Billing period** section, enter **Minimum commitment per billing
period**. Leave it empty for no commitment.

### Change it for one subscription

When you create a subscription, the amount is preselected from the plan price. On a live
subscription, select **Edit** next to **Minimum commitment** in **Subscription configurations**.
A change applies from now.

</steps>

The subscription shows the commitment with what counts toward it so far this term and how much is
short.

**What counts:** the plan fees, add-on fees, proration and usage of the term, before discounts and
tax. Minimum spend adjustments count. Credit notes for a plan change or a cancellation subtract.
One-time charges do not count, and neither do goodwill credit notes, so a true-up never takes back
a goodwill credit.

**The true-up:** at the end of the term, the renewal invoice adds a line "Minimum commitment
adjustment: <plan>

(<term dates="">

)" for the difference. It bills under the plan's price, so it takes
the plan's tax treatment. A term-end cancellation puts it on the final invoice.

</term>
</plan>



For example, a commitment of $6,000 per year, with $1,000 of plan fees and $3,800 of usage in the
term: the renewal invoice adds a $1,200 adjustment.

**Changes in the term:** when the amount changes in the middle of a term, each amount counts for
the time it applied. A short first term counts the same way.

**An early end:** when you cancel immediately, or change the plan and reset the term, we work out
the commitment for the part of the term that ran, after any cancellation credit. The difference
becomes an unbilled charge. On a cancellation, your choice for unbilled charges decides it:
**Invoice Them Now** bills it, **Delete Them** waives it. After a term reset, it goes on the next
invoice.

Trials and paused terms have no commitment.

<warning title="Not with pending invoices">

Monthly usage billing and a minimum commitment do not work when the business holds renewal invoices
as pending for usage. The subscription form does not offer them then.

</warning>

## See usage before it is billed

Open a subscription with a usage price. **Usage this period** shows the usage that the next invoice
bills so far:

- the dates of the window and which invoice bills it;
- for each item: the units, free units and amount so far, and the projected units and amount;
- the subtotal, tax and total so far, and the projected total.

The amounts are priced exactly as the invoice will price them, but without discounts or credits.
The projection starts after 10% of the period. A running total is extended at its current rate,
and a level that carries over is held where it is. It is an estimate.

Usage recorded during a trial shows separately. No invoice bills it.

The customer page has a **Usage this period** card too: each metered subscription with its total
so far and projected total, and the total for each currency.

### In the customer portal

Open **Settings → Hosted pages**. In **Usage**:

<table>
<thead>
  <tr>
    <th>
      Setting
    </th>
    
    <th>
      Default
    </th>
    
    <th>
      Effect
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Show customers their usage this period
      </strong>
    </td>
    
    <td>
      On
    </td>
    
    <td>
      Each subscription with a usage price shows the usage so far, the amount, the tax and the total, before discounts and credits.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Also show the projected usage
      </strong>
    </td>
    
    <td>
      Off
    </td>
    
    <td>
      Adds the projected total at the end of the period. It is an estimate, not a price that you promise.
    </td>
  </tr>
</tbody>
</table>

## Related

- [Usage-based billing with the API](https://twominutebilling.com/help/developers/recipes/usage-based-billing)
- [Meter usage events with the API](https://twominutebilling.com/help/developers/recipes/meter-usage-events)
- [Meters and rate cards](https://twominutebilling.com/help/guides/usage-and-ai-billing/meters-and-rate-cards)
- [Retrieve usage so far](https://twominutebilling.com/help/developers/api-reference/subscriptions/retrieve-usage-so-far-in-the-current-billing-win)
- [Get the minimum commitment for the current term](https://twominutebilling.com/help/developers/api-reference/subscriptions/get-the-minimum-commitment-for-the-current-term)
- [Customers and subscriptions](https://twominutebilling.com/help/guides/customers-and-subscriptions)


## Sitemap

See the full [sitemap](https://twominutebilling.com/sitemap.md) for all pages.
