Incident metrics that matter

Mean time to recovery is the metric everyone quotes and the one most easily gamed. The useful numbers are the ones that decompose it.

Incident metrics that matter

The short version

  • Decompose MTTR into detect, acknowledge and repair - The improvement is usually in detection.
  • Incident durations are heavily skewed, so the mean is a poor summary. Use percentiles.
  • MTBF is close to meaningless for software, which does not wear out.
  • Change failure rate and error budget consumption drive better decisions than any mean.

Incident metrics exist to answer two questions: Are we getting better, and where should we spend effort. Most teams track the one metric that answers neither.

MTTR and its decomposition

Mean time to recovery is the average elapsed time from an incident starting to service being restored. It is the headline number, and on its own it tells you nothing actionable - Because it is a sum of four quite different phases.

MetricMeasuresImproved by
MTTD - DetectStart until someone knowsBetter monitoring and alerting
MTTA - AcknowledgeAlert until a human engagesOn-call rotation and escalation
MTTI - InvestigateEngagement until cause identifiedObservability, runbooks
MTTR - RepairCause known until restoredRollback tooling, automation

The reason to split them is that teams consistently assume the problem is repair and it usually is not. A team with a four-hour MTTR that turns out to be three hours of detection has a monitoring problem, not an engineering one - And no amount of faster deploys will fix it.

Detection is also the cheapest phase to improve. A better health check costs an afternoon; halving repair time can be a quarter of work.

The mean is the wrong statistic

Incident durations are heavily skewed: A large number of short events and a small number of very long ones. A mean over that distribution is dominated by the tail.

Twenty incidents of five minutes and one of twelve hours gives a mean of about 39 minutes - A number that describes none of the twenty-one incidents. It is not the typical case and it is not the bad case.

Use the median for the typical incident and the 95th percentile for the bad one. Track both. A median that is stable while p95 grows means your worst incidents are getting worse, which is exactly the thing a mean would hide.

And count incidents by severity rather than aggregating everything. A metric that mixes a two-minute degradation with a four-hour outage is measuring two different phenomena.

MTBF is not useful here

Mean time between failures comes from hardware reliability, where components wear out on a distribution you can characterise and where the next failure is roughly independent of the last.

Software does not wear out. Failures are caused by changes, load and dependencies, which makes them correlated rather than independent: Incidents cluster after a big release, during a migration, or when a system is near capacity. A mean interval over that is not predictive of anything.

The useful replacement is change failure rate - The proportion of deploys that cause a degradation. That connects failures to their actual cause and is directly actionable: If a quarter of your deploys break something, the problem is the release process.

Error budgets

The most behaviour-changing metric on this page, because it turns reliability into a quantity you can spend.

If your objective is 99.9% availability, your error budget is 0.1% - About 43 minutes a month. Downtime consumes it. While budget remains, you ship features. When it is exhausted, you stop shipping and spend the time on reliability.

What makes this work is that it removes an argument. Instead of a recurring negotiation between product and engineering about whether to prioritise reliability, there is a number, and the number decides. It also legitimises spending the budget: If you have used none of it, you are being too conservative and could be moving faster.

Metrics that mislead

Number of incidents, on its own. A team that declares an incident for every degradation looks worse than one that only declares for total outages, while being better run. The definition drives the number.

Uptime percentage for a short period. "100% this month" is true of most services most months.

Anything used to compare teams. Metrics used for evaluation get optimised, and incident metrics are unusually easy to optimise the wrong way: Declare fewer incidents, close them earlier, classify them lower. Every one of those improves the number and makes the organisation worse.

The failure mode to watch for: A team whose MTTR improves while customer complaints do not. That usually means incidents are being closed when the fix is deployed rather than when service is actually restored - And recovery is not the same as the fix.

A minimal set

For most teams, five numbers are enough:

  1. Median and p95 incident duration, by severity.
  2. Time to detect, tracked separately - Usually where the biggest win is.
  3. Change failure rate.
  4. Error budget consumed this period.
  5. Percentage of incidents with a written post-mortem - A process metric, and the one that most predicts whether the others improve.

Review them monthly, look for trends rather than single points, and never use them to rank people.

Questions people ask

What does MTTR mean?

Mean time to recovery: The average elapsed time from an incident starting to service being restored. On its own it is not actionable, because it combines detection, acknowledgement, investigation and repair - Four phases that are improved in completely different ways.

Why is the mean a bad way to measure incident duration?

Because incident durations are heavily skewed: Many short events and a few very long ones. The mean is dominated by the tail and describes none of the actual incidents. Track the median for the typical case and the 95th percentile for the bad case.

Is MTBF useful for software?

Not really. Mean time between failures assumes independent failures from components that wear out, which is a hardware model. Software failures are caused by changes, load and dependencies, and they cluster. Change failure rate is the useful replacement.

What is an error budget?

The amount of downtime your availability objective permits - 0.1% for a 99.9% target, about 43 minutes a month. While budget remains you ship features; when it is exhausted you stop and spend the time on reliability. It replaces an argument with a number.

Read next

What uptime percentages mean

The uptime nines table, what each level costs to achieve, and why how uptime is measured matters more than the number itself.

Uptime and monitoring4 min read

Alert fatigue

Why too many alerts is more dangerous than too few, and how to design alerting that people still respond to after six months.

Uptime and monitoring4 min read

How long do outages last?

Typical outage durations by cause, why most incidents resolve in minutes, and the warning signs that an outage is going to be a long one.

Website downtime5 min read

Service level agreements explained

What service level agreements really commit a provider to, how credits are calculated and claimed, and the exclusions that matter most.

Uptime and monitoring4 min read