---
title: Per unit
description: Charge a fixed price for each unit, seat, or block of usage, with an optional free allowance.
domain: pricing
status: shipped
visibility: public
last_verified: 2026-07-11
order: 20
---
Per unit pricing multiplies a unit price by the quantity. Every unit costs the same. Use it for seats, active users, projects, or any count where the price per item does not change with volume.

## Worked example

You charge $10 per seat per month. A customer has 8 seats.

```
total = quantity × unit price
      = 8 × $10.00
      = $80.00
```

With a free allowance of 5 included seats, only the seats above the allowance are billed:

```
total = max(0, quantity − included) × unit price
      = max(0, 8 − 5) × $10.00
      = 3 × $10.00
      = $30.00
```

## Pricing in blocks

For very small unit prices, set a block size with `per_units`. The price then applies per block instead of per single unit. "$2.50 per 1 million tokens" is one price with `per_units` set to 1,000,000. The math divides the billable quantity by the block size, then multiplies by the price, and rounds once at the end:

```
total = max(0, quantity − included) ÷ per_units × unit_amount
```

## Settings

| Setting | What it does |
|---|---|
| Unit amount | The price per unit (or per block), in minor units of the currency. |
| Per units | Optional block size. Leave empty to price per single unit. |
| Included quantity | Free allowance subtracted from the quantity before billing. |
| Minimum and maximum | Optional guardrails that clamp the final line amount. |

## Edge cases

- **Quantity below the allowance.** The line is $0.00, never negative.
- **Rounding.** Block pricing rounds once, at the end, so fractional blocks are billed by their exact share rather than rounded per block.
- **Price changes on volume.** If bigger customers should pay less per unit, use tiered, volume, or stairstep pricing instead.

## In the API

```json
{
  "pricing_model": "per_unit",
  "pricing_config": { "unit_amount": 1000 },
  "currency": "USD",
  "billing_period_unit": "month",
  "billing_period_count": 1
}
```
