MTTR, MTTA and MTBF calculator

Upload an incident export and get MTTA, two clearly separated MTTRs, and MTBF with an availability estimate when your data actually supports them. Every number shows how many incidents it is based on.

Privacy: Your CSV is processed in this browser and is not uploaded. The page has no upload endpoint, and its security policy blocks it from sending data to other servers. Close or reset the page to discard the data.

1. Add your incident data

Required columns: incident_id, service, detected_at. Optional: acknowledged_at, resolved_at, outage_started_at, restored_at. Timestamps must be ISO 8601 with a timezone, for example 2026-10-01T10:00:00Z or 2026-10-01T06:00:00-04:00. Maximum 10 MB or 50,000 rows.

Download sample CSV
Or paste CSV text

How each metric is calculated

  • MTTA: mean of acknowledged_at minus detected_at. Incidents without an acknowledgment are counted as missing, not as zero.
  • MTTR (resolve): mean of resolved_at minus detected_at. This is one specific definition. Others exist[Atlassian].
  • MTTR (recover): mean of restored_at minus outage_started_at. Shown separately and never mixed with resolve.
  • MTBF: (window length minus merged downtime) divided by failures that started in the window, for one service, only after you confirm the outage data is complete. Zero failures gives N/A.
  • Availability estimate: (window minus merged downtime) divided by window. An estimate from your data, not an SLA measurement.

Means and medians are both shown. Read the MTTR, MTTA and MTBF guide for why that matters and how to pick measurement boundaries.

What the validator checks

  • Required columns, duplicate column names and file size limits.
  • Timestamps must be valid ISO 8601 with a timezone offset. Values without an offset are rejected, which prevents daylight saving errors.
  • Duplicate incident_id values: every copy is excluded until you resolve which is correct.
  • Ordering: acknowledgment and resolution cannot precede detection; restore cannot precede outage start.
  • Incomplete outage pairs, which also block MTBF.

Frequently asked questions

Is my data uploaded anywhere?

No. The file is read with your browser's File API and processed by JavaScript on this page. There is no server endpoint to receive it, and the page's content security policy only permits network requests back to this site. If analytics is enabled, it records only that the tool was used, never file contents, timestamps or identifiers.

Why is MTBF showing Not available?

MTBF needs one service, an explicit window, your confirmation that every qualifying outage is in the file, and no excluded or incomplete outage rows for that service. The card lists exactly which condition is missing.

Why does the calculator not infer the window from my data?

Using the first and last incident as the window shrinks it and inflates failure frequency. You know the period you meant to measure; the data does not.

Can I use business hours?

Not in this version. All durations are wall-clock time between absolute instants. If you report business-hours metrics, calculate them separately and label them clearly.

What does the exported summary contain?

Only aggregate numbers, counts and your window settings. Text cells are protected against spreadsheet formula injection.

Sources

  1. Atlassian: Common incident management metrics (accessed 2026-10-18)

Links point to the original publishers. Citing a source does not mean that publisher reviewed or endorses this site.