React Pricing Estimator

Usage pricing is almost impossible to reason about from a table. Let someone drag their real numbers and watch the bill move, and "what would this cost us?" stops being a sales call.

Estimate your monthly cost

Drag your expected usage. Pricing is graduated — each unit is billed at the rate of its own tier.

4,000 devices
0$0.40/device · first 100 free50,000
900,000 checks
0$0.00/check · first 50,000 free5,000,000
260 GB
0$0.09/GB · first 20 free2,000

Estimate only. Excludes taxes, support tiers, and any committed-use discount. Annual figure is the monthly estimate × 12 with no commitment discount applied.

Installation

npx shadcn@latest add "https://kelvinui.com/registry/pricing-estimator.json"

Props

PropTypeDescription
metersPricingMeter[]{ id, label, unit, min, max, step?, defaultValue, tiers, included? }
basePricenumberFixed monthly platform fee
currencystringCurrency symbol (default "$")
cta{ label, href }Summary-panel button
footnotestringWhere the assumptions go — use it

Graduated, not flat

The pricing maths is graduated: each unit is charged at the rate of the tier it falls into, so crossing a breakpoint never re-prices the units below it. Flat tiering — where hitting 5,001 units suddenly re-rates all 5,001 — produces cliffs that make a customer's bill jump, and if your billing system is graduated but your calculator is flat, the estimate is simply wrong.

included units are subtracted before any tier applies, which is how free allowances actually work.

Say what it excludes

The number this produces will be remembered and quoted back to you. The footnote is not decoration: name what is excluded — taxes, support tiers, committed-use discounts — and be explicit that the annual figure is the monthly estimate x 12 with no commitment discount applied, because a reader will otherwise assume the annual number already includes one.

For a head-to-head against an incumbent rather than a self-serve estimate, use the TCO Calculator.

New components every week

Get the week's new Kelvin UI components and templates in one short email. No spam, unsubscribe anytime.