Price ladder tier calculator
The price ladder tier calculator turns one starting price into a consistent sequence of tier prices.
Run — free
Enter the base price, the percentage increase between levels, and the total number of levels you need. The calculator treats the base as level one, compounds the percentage for each following level, and rounds displayed prices to two decimal places. It is useful for packages, service plans, quantity tiers, licensing bands, or any offer where each successive option should follow the same transparent pricing rule.
Define a ladder that buyers and teams can understand
A useful price ladder begins with three decisions: the starting amount, the percentage gap between neighboring tiers, and the number of tiers. In this calculator, base_price is always level one. The percentage_step controls every move upward, while levels is the total number of returned prices, not the number of increases. For example, a five-level ladder contains the base tier plus four higher tiers. This convention makes the output easy to copy into a catalog, proposal, rate card, or configuration file without adjusting the numbering. Enter amounts without currency symbols or thousands separators; the same numeric result works for dollars, euros, pounds, or another currency because no exchange rate is involved. The percentage must be positive, and the level count must be a whole number. Before publishing the result, check that the base represents the smallest intended package and that the selected step leaves a meaningful, explainable distinction between adjacent offers. A consistent mathematical ladder supports pricing discussions, but product value should still determine what belongs in each tier.
Understand cumulative percentage steps and rounding
Each new tier is calculated from the mathematical price of the preceding tier by multiplying by one plus the percentage step expressed as a decimal. This is cumulative growth, sometimes called compounding. A ten percent step therefore uses a multiplier of 1.10 at every transition. Level three is not merely twenty percent above the base: it is the base multiplied by 1.10 twice, so the second increase also applies to the growth created by the first. The calculator reports the multiplier and shows each level with its price and absolute increase from the original base. Prices are rounded to two decimal places for display, while the underlying formula is evaluated from the original base and exponent for each level. That choice avoids allowing a rounded intermediate cent value to distort every tier that follows. Very small bases or steps can still produce repeated displayed prices because two different mathematical values may round to the same cent. If distinct cent amounts are essential, increase the step or review the ladder manually rather than assuming every positive percentage creates a visibly different price.
Use the output as a planning baseline
The generated ladder is most valuable as a controlled baseline that can be reviewed against costs, willingness to pay, and the actual benefits offered at each tier. A subscription team might use it to draft monthly plans, a consultant might create package options, and a seller might establish consistent upgrade bands. Because the algorithm is deterministic, the same inputs always produce the same output in the browser and through the API. That makes it suitable for repeatable quoting workflows and automated catalog preparation. The calculator does not claim that a percentage is commercially optimal, does not add taxes or discounts, and does not convert currencies. Those decisions depend on market context and should be applied separately. When comparing a proposed ladder with an existing catalog, pay attention to psychological price points, minimum margins, and whether the largest tier becomes unrealistic after repeated compounding. Save the original inputs alongside the final prices so colleagues can reproduce the calculation and understand the rule. Browser calculations are free; automated API requests cost $0.002 each.
What you can do with it
Draft service packages
Create consistent starting prices for basic, standard, premium, and higher service packages before adjusting them for scope.
Plan subscription tiers
Generate a reproducible set of plan prices using one cumulative percentage rule across every level.
Prepare a rate card
Turn an approved base amount into multiple pricing bands that can be reviewed or exported into an automated workflow.
FAQ
Does the level count include the base price?
Yes. Level one is the base price, so five levels return the base plus four successively higher prices.
Is the percentage simple or cumulative?
It is cumulative. Every level applies the same multiplier, so growth from earlier levels is included in later calculations.
How are prices rounded?
Each displayed price is rounded to two decimal places. Every tier is calculated from the original base and its exponent, not from a previously rounded display value.
Can I use any currency?
Yes. Inputs are plain amounts, and the calculator performs no conversion, so all prices remain in the currency represented by your base price.
Does this calculator include tax or discounts?
No. It produces the tier ladder only. Apply taxes, discounts, fees, or currency conversion separately when they are relevant.
What does an API calculation cost?
Each API request costs $0.002. You can also run the calculator free in your browser on this page.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/price-ladder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base_price":25,"percentage_step":10,"levels":5}'const res = await fetch("https://api.kit.forhosting.com/life/price-ladder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base_price": 25,
"percentage_step": 10,
"levels": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/price-ladder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base_price": 25,
"percentage_step": 10,
"levels": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/price-ladder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base_price":25,"percentage_step":10,"levels":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base_price":25,"percentage_step":10,"levels":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/price-ladder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"base_price": 25,
"percentage_step": 10,
"levels": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.price_ladder",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |