MTTR for software teams: meaning, formula, and examples

Last updated: September 26, 2026

MTTR stands for mean time to resolution: the average time your team takes to resolve an incident.

Say your team had two incidents last month. One took 40 minutes to resolve, the other took 20. Your MTTR was 30 minutes.

Easy enough to calculate. Though before you compare that number with another team's, you'll want to check what they're measuring. They might start counting when an alert fires, while you're counting from when customers first saw errors.

Let's go through an example, then look at how to use it to improve your incident response.

What does MTTR mean?

Depending on where you work, you'll hear MTTR used to mean a few different things:

  • Mean time to resolution: how long it takes to resolve an incident.
  • Mean time to recovery: how long it takes to get the service working again.
  • Mean time to repair: how long it takes to fix a failed component, often used when discussing hardware.
  • Mean time to respond: how long it takes someone to respond after an alert. You may also see MTTA, or mean time to acknowledge, for the time until someone acknowledges it.

For this article, we're measuring from when customers first experience the problem until the team verifies the fix and resolves the incident.

Your organisation may use a different definition. Write down the start and end events alongside the metric so whoever reads it knows what you've counted.

MTTR formula: how to calculate mean time to resolution

Choose a reporting period, add up the time taken to resolve each incident in it, then divide by the number of resolved incidents:

Mean time to resolution = Sum of incident resolution durations / Number of resolved incidents
Incident resolution duration = Resolution timestamp - Incident start timestamp

Using our two incidents, that's (40 + 20) / 2 = 30 minutes.

Count incidents rather than alerts. One outage can trigger dozens of alerts, but it's still one incident.

Here's what one of those incidents might look like. All times are in the same timezone:

Event Time Minutes since impact
Customers begin seeing errors 09:00 0
Monitoring detects failures 09:05 5
On-call acknowledges the alert 09:08 8
Rollback restores customer access 09:22 22
Team verifies the fix and resolves the incident 09:40 40

It took five minutes to detect the problem and another three for someone to acknowledge the alert. Customers could use the service again after 22 minutes. The team then spent 18 minutes checking the fix before resolving the incident.

So the time to recovery was 22 minutes, and the time to resolution was 40 minutes. If your team closes incidents as soon as the service is restored, those timestamps may be the same. That's fine, as long as it's clear what you're reporting.

Note that starting the clock when monitoring detected the problem would leave out five minutes of customer impact. Sometimes you won't know exactly when an incident started; record your best estimate and mark it as such.

You should also decide which incidents you're including. For example, does a failure affecting one customer count? Is planned maintenance excluded? Use the same rules each month, and include the period and incident count with the result.

What's a good MTTR for a software team?

It depends on what broke. Customers being unable to pay for an order is a different problem from an internal report arriving late.

Start with your own incident history. Group incidents by service and severity so you can make a useful comparison over time. Agree on targets based on how long customers can tolerate the interruption and what your team needs to improve to get there.

Keep the individual durations visible too. If nine incidents took one minute each and the tenth took 91 minutes, your MTTR would be ten minutes. You'd probably still want to spend some time reviewing that 91-minute outage.

How to reduce MTTR

During your post-incident review, go through the timeline with the people who handled the incident. Ask where they got stuck and what they were waiting for.

The timestamps give you a place to start. The people involved can explain what happened between them.

Detect the problem earlier

If customers were seeing errors long before your team knew, check whether you're monitoring the part of the service that failed.

For example, your homepage might return a successful response while customers can't log in. You'll need a check that exercises the login flow to catch that problem. Uptime monitoring can help detect failures from outside your infrastructure, but the checks still need to cover what your customers use.

Make sure the alert reaches someone

Check who received the alert, whether they were on call, and what happened when they didn't acknowledge it.

If the alert went to an unmonitored channel, fix the routing and escalation. If it was ignored because the channel gets hundreds of unhelpful alerts, you'll need to work on alert fatigue too.

Document the steps that got the service working again

If someone spent 20 minutes finding the person who knew how to roll back a deployment, that's a good starting point for a runbook.

Write down when to use the procedure, the steps to follow, and how to check whether it worked. Have someone else try it in a test environment before their next on-call shift.

Explain how to verify the fix

In our example, the team spent 18 minutes checking the service after the rollback. That might have been necessary, or they might have been unsure what to check.

Your runbook should explain which metrics to watch and which customer actions to test. Don't leave someone guessing whether it's okay to close the incident.

If they're also answering customer questions, have another team member handle incident updates. A status page gives people somewhere to check progress while the on-call engineer works on the problem.

MTTR vs MTBF and other incident metrics

MTBF stands for mean time between failures. It measures the average operating time between failures, while MTTR measures how long it takes to repair, recover, or resolve them, depending on your definition.

You could resolve every incident in five minutes and still have a service that breaks every day. Your MTTR would look good, but your customers would still be dealing with frequent interruptions.

Keep track of how often incidents happen alongside how long they last. Time to detect and time to acknowledge can help explain changes in MTTR, particularly if you've recently changed your monitoring or on-call arrangements.

After a few incidents, go back to the changes you made in your reviews. Did the new check catch the failure? Could the next person follow the rollback instructions? That's how you'll find out whether the work helped.

Reliable uptime monitoring
for your team in <5 mins.
Get started for free

No credit card required.