Mean Time to Recovery (MTTR)

Mean Time to Recovery (MTTR)

Mean hours from incident open to incident close. The DORA recovery metric.

Family: DORA & Quality · Cadence: Per window, per team or org · Where it appears: /ai-adoption/board-metrics

At a glance

MTTR is “when things break, how fast do you fix them?” It is the second DORA stability metric, alongside CFR. Where CFR asks “how often does shipping cause problems?”, MTTR asks “when shipping does cause problems, how fast do you recover?” Together they describe your stability profile.

A team with high CFR but low MTTR is shipping bugs but fixing them fast — uncomfortable, but recoverable. A team with low CFR but high MTTR ships clean most of the time but struggles when something does go wrong — unusual but possible. The healthiest profile is low on both.

Formula

MTTR (hours) = mean(resolved_at − opened_at) for customer-bug
                incidents resolved in the window

How GitKraken Insights calculates it

Source data. The same Jira customer-bug stream that powers CFR. Each Jira incident has a creation timestamp (opened_at) and a resolution timestamp (resolved_at), stored in the jira_incidents table.

Computation. For each resolved incident in the window, compute the duration in hours. Take the mean across incidents. (Median is more robust to outliers and is shown on hover for most charts.)

Open incidents are excluded. Only resolved incidents count toward MTTR — an open incident doesn’t have a resolution time yet, so it cannot contribute to a mean recovery time.

Why it matters

MTTR is the metric that distinguishes “we ship bugs” from “we ship bugs and they bleed into our quarter.” A team with elite MTTR can take risks on shipping speed because they know they can recover fast. A team with poor MTTR has to be more conservative because every bug becomes a slow drag.

For AI adoption: AI tools sometimes help MTTR (faster debugging with Claude / Codex), and sometimes hurt (autonomous AI-assisted commits introducing subtle bugs that take longer to debug). Worth watching alongside CFR by AI Tier.

How to read it

DORA bands for MTTR:

Band MTTR Pattern
Elite < 1 hour Production hotfixes within the hour
High 1 hour – 1 day Same-day recovery
Medium 1 day – 1 week Recovery within a week
Low > 1 week Slow recovery — a risk amplifier

For most product engineering teams, High is the realistic target. Elite requires investment in observability, runbooks, and on-call practices that not every team needs.

Where it appears

Settings that affect it

Related metrics

Metric Relationship
CFR The “how often” stability metric. MTTR is the “how fast to recover” sibling.
Lead Time The velocity equivalent. Lead Time and MTTR are sometimes confused — Lead Time covers shipping changes; MTTR covers recovering from incidents.

How to improve it

Limitations and gotchas

FAQ

Q: Should MTTR include the time to acknowledge?
A: It currently includes everything from Jira open to Jira close. If your Jira workflow distinguishes “acknowledged” from “open,” you would need a custom view — not currently in the dashboard.

Q: Why doesn’t MTTR show on /ai-adoption/ai-impact alongside CFR?
A: They are related but different views. CFR is the broader stability metric most leaders watch, so it is featured on the AI Impact page. MTTR is the operational recovery metric and lives in /ai-adoption/board-metrics alongside the rest of DORA.