An incident is not truly complete until the organization understands what happened, reduces recurrence risk, and tracks improvements to a verifiable end state. Restoring service addresses immediate impact. Without a record of the timeline, missed signals, response decisions, and system weaknesses, another team will learn the same lesson during a future on-call shift.
A postmortem is a written record of impact, events, mitigation, contributing factors, and follow-up work. “Blameless” does not mean that nobody is accountable. It removes personal judgment from analysis so facts can emerge, while giving every system improvement a clear owner and due date.
1. Define postmortem triggers before incidents
If criteria are invented after an outage, teams may skip uncomfortable incidents or use the process as punishment. Define triggers in advance and apply them consistently. Google SRE examples include downtime or degradation above a threshold, data loss, on-call intervention such as rollback or rerouting, excessive recovery time, and monitoring failures that require manual discovery.
- An SLO or error budget was materially affected.
- Security, data, or compliance risk existed.
- Emergency work outside the runbook was required.
- A near miss exposed a safeguard that nearly failed.
- A small incident pattern keeps recurring.
- A stakeholder has a legitimate learning reason to request review.
Not every alert requires a large document. Use lightweight reviews for small events and full postmortems for significant ones. Severity, triggers, and completion expectations should be known beforehand.
2. Separate response from deep analysis
During the incident, priorities are user protection, blast-radius control, service restoration, and communication. The incident commander should not delay mitigation to debate root cause. Responders should still preserve evidence: UTC timestamps, alerts, dashboards, commands, configuration changes, decisions, and results. A dedicated scribe prevents the timeline from depending on memory after a stressful shift.
After stabilization, preserve investigative data according to policy. Do not copy tokens, customer information, or sensitive payloads into a broadly shared document. Link to access-controlled systems instead of pasting secrets.
A useful timeline records what the team knew at each moment; it does not use hindsight to judge earlier decisions.
3. Lead with measurable impact
Readers need to understand who was affected, for how long, and how severely before entering technical detail. Record start and end in UTC, regions, products, error rate, latency, estimated tenants or users, and confirmed data or revenue impact.
| Useful wording | Avoid |
|---|---|
| “From 09:12–09:47 UTC, 18% of checkout requests in region A returned 503.” | “Checkout was slow for a while.” |
| “No evidence of data loss; 312 orders remained pending and were reconciled.” | “The data seems fine.” |
| “The first alert arrived 11 minutes after impact; support reported it 4 minutes earlier.” | “Monitoring was bad.” |
Distinguish facts, estimates, and unknowns. For an estimate, record the method and update it later. Do not invent precision to make reporting look complete.
4. Build the timeline from multiple evidence sources
Combine deployment logs, alerts, incident chat, audit records, metrics, traces, and tickets. Use one timezone—preferably UTC—and sufficient precision. Each row should include the event, role where relevant, evidence, and effect on incident state.
09:12 UTC Error rate exceeds 5%; alert waits on a 15-minute window.
09:19 UTC Support opens a ticket from customer reports.
09:23 UTC On-call confirms checkout 503s and declares SEV-1.
09:27 UTC Correlation points to exhausted database connections.
09:32 UTC Worker concurrency reduced; errors begin declining.
09:47 UTC Service recovers; monitoring and reconciliation continue.
A timeline should reveal detection, acknowledgment, diagnosis, mitigation, recovery, and validation—not merely commands. Long gaps deserve analysis: missing telemetry, unclear ownership, or slow access tooling may be contributing factors.
5. Analyze triggers, contributing factors, and failed safeguards
A single “root cause” is often too simple for a complex system. Separate the proximate trigger from conditions that allowed impact to spread. A deployment that raises concurrency may be the trigger; insufficient connection-pool headroom, missing load tests, delayed alerts, and manual rollback permissions are contributing factors.
Ask several layers of questions:
- What changed immediately before impact?
- Why did the change pass review and testing?
- Which safeguard should have limited the blast radius?
- Which signals existed but were unseen or misunderstood?
- What slowed detection, diagnosis, or mitigation?
- What worked well and should be preserved?
“Human error” is not a stopping point. If one valid command can remove an entire cluster, ask why permissions, dry-run, confirmation, scope limits, and recovery did not prevent or reduce the impact.
6. Blamelessness does not remove accountability
Blameless language describes action and context: “The runbook instructed responders to restart the whole pool; the restart increased load.” Blameful language says: “The engineer restarted it incorrectly.” The first statement enables runbook repairs, guards, and better training. The second encourages future responders to hide near misses.
Accountability still matters:
- A service owner remains responsible for reliability.
- Every action item has one owner, a due date, and completion evidence.
- Risk decisions have approvers and audit history.
- Intentional policy violations are handled through the appropriate personnel process, separate from technical analysis.
Assuming good intent does not mean every decision was good. It creates room to understand why the choice seemed reasonable with the information available.
7. Action items must change the system and be measurable
“Be more careful,” “retrain the team,” or “monitor it” has no verifiable finish. A strong action names the change, owner, priority, due date, evidence, and reduced risk. Balance three categories:
- Prevent: remove or block the failure mode, such as automatic concurrency limits.
- Detect: discover it sooner, such as alerting on saturation before 503 responses.
- Mitigate: reduce impact or recovery time with a kill switch, fallback, or one-step rollback.
| Vague action | Verifiable action |
|---|---|
| Improve monitoring | Alert when pool utilization exceeds 80% for five minutes; test in staging; Platform owner; due October 15. |
| Update the runbook | Add headroom and rollback checks; a different on-call engineer completes a game day. |
| Avoid bad deployments | Canary at 5% for 15 minutes and stop automatically when error-budget burn crosses the threshold. |
Do not create dozens of equally urgent tasks. Select high-leverage actions and track them to closure. If an item is canceled, record why and who accepted the residual risk.
8. Use review meetings to verify, not prosecute
Distribute the draft beforehand. The facilitator restates the learning goal, keeps discussion on facts and systems, and invites affected groups. Responders should not have to defend their character. Reviewers test impact completeness, analysis depth, action quality, and open questions.
- Confirm impact and timeline.
- Identify unknowns without replacing them with guesses.
- Validate triggers and contributing factors against evidence.
- Evaluate prevent, detect, and mitigate actions.
- Confirm owners, due dates, reviewers, and verification.
- Set sharing scope and redaction requirements.
Review should not delay obvious safety work. Urgent actions can begin before the document is complete, but they must be linked and verified later.
9. Share lessons without exposing sensitive data
Postmortems create value when other teams can find and reuse lessons. Store them in a searchable repository with consistent metadata and access control. Share as broadly as appropriate while redacting customer identifiers, secrets, unpatched exploit details, legal material, and protected investigation data.
Useful metadata includes service, severity, failure domain, detection source, contributing-factor tags, and action status. Quarterly aggregation can reveal patterns in delayed alerts, emergency access, capacity, dependencies, schema migration, or missing runbooks. Never rank teams by postmortem count; transparent teams may report more than teams that hide incidents.
10. Follow up after publication
A polished postmortem with abandoned actions is only prose. Put actions in the main backlog, prioritize by risk, and review them with leadership. Completion targets should be realistic but not indefinitely displaced by feature work. When a similar incident recurs, link the records and ask whether earlier actions were missing, late, or ineffective.
Verify with evidence: a new test, dashboard, game day, enforced configuration, or measured recovery improvement. “Merged” is not the same as “effective.” An alert is complete only after it fires correctly and the on-call engineer knows what to do.
Suggested template
# Incident title
Status / Severity / Owners / Review date
## Executive summary
## Customer and business impact
## Detection
## Timeline (UTC)
## Trigger and contributing factors
## What went well
## What went poorly
## Where we got lucky
## Corrective actions
| Action | Type | Owner | Due | Verification |
## Open questions
## References and evidence
Quality checklist
- Impact includes measurements, duration, and certainty.
- The UTC timeline links evidence and incident state.
- Analysis focuses on systems and context rather than personal labels.
- The trigger is not mistaken for the entire cause.
- The document records what worked and where luck helped.
- Actions include owners, deadlines, priorities, and verification.
- Secrets and customer information are removed or redacted.
- The document is reviewed, published, and actions are tracked.
References
- Google SRE Workbook: Postmortem Culture
- Google SRE Book: Postmortem Culture
- Google Cloud Architecture Framework: Conduct thorough postmortems
- Microsoft Azure Well-Architected: Incident management
Conclusion
A strong postmortem turns an outage into verifiable change. It measures impact honestly, reconstructs an evidence-based timeline, understands people within system context, and produces owned actions. Blamelessness makes it safe to surface facts; accountability turns lessons into work. When organizations review, share, and close actions consistently, postmortems become a reliability mechanism rather than an outage ritual.




No comments yet. Be the first to share your thoughts.