Stairstep
Charge one flat price for the whole band the quantity lands in, ignoring the exact count.
Stairstep pricing charges a flat price for each band, not a price per unit. It finds the band the quantity lands in and charges that band's flat amount, no matter where in the band the quantity sits. The price steps up as you cross each boundary, like a staircase.
Use it for plans sold in size brackets: "up to 10 users is $500, up to 50 is $1,200, more than that is $2,000." Inside a bracket the price does not move.
Worked example
You sell seats in three brackets:
| Band | Flat price |
|---|---|
| 1 to 50 seats | $500.00 |
| 51 to 150 seats | $1,200.00 |
| 151 and up | $2,000.00 |
A customer has 100 seats. 100 lands in the second bracket, so the charge is that bracket's flat price:
100 seats -> band 51 to 150 -> $1,200.00
51 seats or 150 seats would cost the same $1,200.00. The count inside the band does not change the price. Only crossing into the next band does.
Settings
Each band has a flat price instead of a per unit rate:
| Field | What it does |
|---|---|
| Up to | The band's upper limit. Leave the last band empty for "and up". |
| Flat amount | The single price charged when the quantity lands in this band. |
| From | The lower bound, shown for display. |
Edge cases
- The count inside a band is ignored. Every quantity in a band pays the same flat price.
- The step happens at the boundary. Adding one seat that crosses into the next band jumps the price to that band's flat amount.
- The last band must be open. Leave its upper limit empty so any quantity is priced.
In the API
Stairstep uses flat_amount per band, not unit_amount:
{
"pricing_model": "step",
"pricing_config": {
"tiers": [
{ "tier_from": 0, "tier_to": 50, "flat_amount": 50000 },
{ "tier_from": 51, "tier_to": 150, "flat_amount": 120000 },
{ "tier_from": 151, "tier_to": null, "flat_amount": 200000 }
]
},
"currency": "USD"
}