tools / capacity-headroom
Capacity Headroom Calculator
Headroom today and time left at current growth.
Time to target ceiling
Utilisation now
Headroom to target
Time to 100%
Growth multiple
Key facts
| Utilisation | u = peak load / max capacity |
|---|---|
| Time to a limit | months = ln(limit / load) / ln(1 + g) |
| Doubling time | About 70 ÷ growth % — 5%/month doubles in ~14 months |
| Use peak, not average | Capacity runs out at the busiest hour, not the daily mean |
| Target ceiling | Below 100%, because latency climbs steeply near saturation |
Worked example
Peak is 600 req/s, the system tops out at 1,000, you want to stay under 80%, and traffic grows 5% a month.
now = 600 / 1000 = 60% target = 0.80 × 1000 = 800 req/s months = ln(800 / 600) / ln(1.05) ≈ 5.9 to 100% = ln(1000 / 600) / ln(1.05) ≈ 10.5
You have about six months before crossing the target, and under a year before running out. If new capacity takes three months to land, start in month two.
Where "max capacity" comes from
Measure it with a load test that ramps until latency breaks your SLO, not until the system falls over. That point is your real capacity. The Universal Scalability Law can project it for larger setups.
FAQs
Which target ceiling should I use?
Lower for latency-sensitive services and single points of failure; higher for batch work. Also leave room to lose one node: with 4 nodes, losing one removes 25% of capacity.
Growth isn't steady. Does compound growth still work?
Use it as a baseline, then add known spikes — launches, seasonal peaks — on top. Re-fit growth from the last few months each quarter.
Should I measure headroom per resource?
Yes. CPU, memory, connections and downstream quotas each have their own ceiling. The smallest headroom is the one that matters.