System Latency Budget Calculator
Allocate latency budgets across system components, track P95 performance targets and see which bottleneck to fix first.
Flow
Edit components9 components · 5 over
Auth flow · sum of component P95s
1,450ms of 2,250 ms
Under target, but 5 of 9 components are over their slice.
- DNS Lookup20 ms20 ms
- TCP Connection50 ms50 ms
- TLS Handshake80 ms80 ms
- Server Processing200 ms · +50200 ms
- Database Query150 ms · +50150 ms
- API Response50 ms50 ms
- Content Download300 ms · +100300 ms
- JS Parse & Execute400 ms · +100400 ms
- Render & Paint200 ms · +50200 ms
- Frontend62%
- Backend17%
- Network10%
- Database10%
- over budget
- budget
- Slack to target
- 800 ms
- Allocated to components
- 1,140 ms
- Unallocated budget
- 1,110 ms
Layers against their budgetsFrontend 62% · Backend 17% · Network 10% · Database 10%
- Frontend900 ms / 650 ms budget
- Backend250 ms / 200 ms budget
- Network150 ms / 190 ms budget
- Database150 ms / 100 ms budget
How it’s worked outSum of P95s vs target, budgets vs target, each component vs its slice
- The total is the sum of each component’s P95. Percentiles don’t add, so the real end-to-end P95 is usually lower: treat the sum as an upper bound.
- Unallocated budget = target − the sum of component budgets (2,250 ms − 1,140 ms). Negative means the slices promise more than the target allows.
- A component is over when its current P95 is above its own budget. “Fix first” orders them by milliseconds over.
- Status, worst first: over target → over-allocated → components over budget → within budget.
How this works: Method,
How this works
Method
The total is the sum of each component’s P95 latency, an upper bound because percentiles don’t add. Unallocated budget is your target minus the sum of the component budgets, and a component is over when its current P95 is above its own budget, listed by milliseconds over.
Changes
- Redesigned around a request waterfall with each budget behind it; removed the traffic and bounce-rate estimate, which came from a made-up formula, and added a check for unallocated budget.
- Results now update as you type, starting from a filled-in example.
- First published.
Frequently Asked Questions
What is a latency budget and why is it important?
A latency budget is the maximum acceptable response time for a system operation. It's important because it ensures consistent user experience, sets performance goals for development teams, helps identify bottlenecks before they impact users, and enables data-driven performance decisions. Without latency budgets, systems often degrade slowly until users notice and leave.
What does P95 mean and why use it instead of average?
P95 (95th percentile) means 95% of requests complete within that time. We use P95 instead of average because it captures the long tail of slow requests that users actually experience. An average of 200ms might sound good, but if 5% of users wait 2 seconds, those users will have a poor experience. P95 ensures we optimize for the majority while still paying attention to edge cases.
How do I set realistic latency budgets?
Start with user expectations: 100ms for instant feel, 100-300ms for fast, 300-500ms for acceptable. Then subtract: Frontend (200ms), Backend (200ms), Network (200ms), Database (100ms) = 700ms total. Monitor actual performance and adjust based on real data. Consider your specific use case - checkout pages might need stricter budgets than search results.
What components should I track in the ledger?
Track all components that contribute to the user's perceived response time: DNS lookup, TCP connection, TLS handshake, server processing, database queries, API response, content download, JS parse/execute, render/paint. These are the building blocks that make up your P95 target - if any component is over budget, it contributes to the overall latency.
How does the traffic impact estimate work?
The calculator no longer estimates traffic impact. Earlier versions showed 'slow users' and bounce-rate figures scaled from how far the total overshot the target, but those came from a made-up formula, not data. Use real RUM (Real User Monitoring) data and your own analytics to judge the business impact of latency. Also note that the total shown is the sum of each component's P95: percentiles don't add, so the real end-to-end P95 is usually lower than this sum — treat it as an upper bound.
What action items does the calculator generate?
Action items highlight components that exceed their budget. Each item shows what's over budget, by how much (percentage and absolute), and which layer needs optimization. For example: 'Content Download is 50% over budget (+100ms)'. These are your optimization priorities - focus on the largest overshoots for maximum impact.