---
title: "Map your capacity envelope and apply the results | Grafana Labs"
description: "Map your capacity envelope and apply results to one operational decision."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Map your capacity envelope and apply the results

Stress and breakpoint tests define different boundaries. **Degradation** (from stress) is where strain first appears: latency rises and some requests fail, but the system often recovers if load drops. The **outer bound** (from breakpoint) is where your thresholds stopped the run under a continuous ramp: severe latency or errors relative to your bar, not a recommended operating level.

To map your capacity envelope and apply the results, complete the following steps:

1. Gather inputs from [Document the stress result](/docs/learning-paths/find-k6-limits/document-stress-results/) and [Run the breakpoint test](/docs/learning-paths/find-k6-limits/run-breakpoint-test/).
   
   From stress: note either a **degradation threshold** (VU count and RPS where strain first appeared) or a **clean run** through all stages.
   
   From breakpoint: record **RPS and VUs at test stop** (threshold abort or ramp end).
2. Sketch zones using your numbers.
   
   **If stress found degradation**, use three zones:
   
   Expand table
   
   | Zone            | What it means                                   | Example                              |
   |-----------------|-------------------------------------------------|--------------------------------------|
   | **Normal**      | Baseline performance, SLOs met                  | p95 &lt; 350 ms, 0% errors           |
   | **Degradation** | Strain begins; system may recover if load drops | p95 1–2 s, 3–5% errors at ~40 VUs    |
   | **Outer bound** | Breakpoint stop: severe relative to thresholds  | p95 &gt; 8 s, 20%+ errors at ~72 RPS |
   
   **If stress stayed healthy** (common on QuickPizza at path load levels), use two zones:
   
   Expand table
   
   | Zone            | What it means                     | Example                              |
   |-----------------|-----------------------------------|--------------------------------------|
   | **Normal**      | Healthy through all stress stages | p95 stable, 0% errors through 60 VUs |
   | **Outer bound** | Load at breakpoint stop           | Values from your breakpoint summary  |
   
   Replace example values with your own results. The outer-bound row describes load at **test stop** for this script and threshold set, not proof of total system failure.
3. Pick **one operational use** for your envelope:
   
   - **Autoscaling**: With a degradation threshold at 40 VUs, trigger scaling at ~30 VUs (roughly 75% of that point). With only an outer bound at 72 RPS and no observed degradation, scale at ~50 RPS (~70% of the stop reading). Use a wider margin when there is no degradation buffer.
   - **Alerting**: Fire an emergency alert below the outer bound, for example at 60 RPS if the breakpoint run stopped near 72 RPS.
   - **SLO headroom**: Keep target traffic inside the **Normal** zone with margin before the next boundary.
   
   **Tip:** Re-run stress and breakpoint tests after significant infrastructure or dependency changes. Stale envelope numbers lead to false confidence.

In the next milestone, you review what you accomplished and explore related paths.
