PPTX.gallery
narrativesfailure-analysispostmortemapi

Overview

When something goes wrong, a clear failure analysis presentation turns a setback into organizational learning. The pptx.dev API's failure-analysis narrative structures your post-mortem into a professional deck.

The Failure Analysis Structure

  1. Incident — outline the failure timeline and impact
  2. Root Cause — identify root causes with evidence

Example: Service Outage Post-Mortem

{
  "$schema": "https://openpresentation.org/schema/opf/v1",
  "name": "March 15 Outage — Post-Mortem",
  "slides": [
    {
      "layout": "cover",
      "title": "Service Outage Post-Mortem",
      "subtitle": "March 15, 2026 — 14:30 to 17:45 UTC",
      "design": {
        "titleAlignment": "center"
      }
    },
    {
      "layout": "metrics",
      "title": "Impact Summary",
      "blocks": [
        {
          "metric": {
            "value": "3h 15m",
            "label": "Total Downtime"
          }
        },
        {
          "metric": {
            "value": "12,400",
            "label": "Affected Users"
          }
        },
        {
          "metric": {
            "value": "$45K",
            "label": "Estimated Revenue Loss"
          }
        }
      ],
      "design": {
        "titleAlignment": "center",
        "contentAlignment": "center"
      }
    },
    {
      "layout": "list",
      "title": "Incident Timeline",
      "blocks": [
        {
          "items": [
            {
              "text": "14:30 UTC",
              "description": "Monitoring alerts fire for API latency spike"
            }
          ]
        },
        {
          "items": [
            {
              "text": "14:45 UTC",
              "description": "On-call engineer begins investigation"
            }
          ]
        },
        {
          "items": [
            {
              "text": "15:30 UTC",
              "description": "Root cause identified: database connection pool exhaustion"
            }
          ]
        },
        {
          "items": [
            {
              "text": "17:45 UTC",
              "description": "Service fully restored after connection pool resize and deploy"
            }
          ]
        }
      ],
      "design": {
        "titleAlignment": "center",
        "contentDirection": "vertical"
      }
    },
    {
      "layout": "list",
      "title": "Root Causes",
      "blocks": [
        {
          "items": [
            {
              "text": "Connection Pool Limit",
              "description": "Default pool size of 20 was insufficient for new traffic patterns after product launch."
            }
          ]
        },
        {
          "items": [
            {
              "text": "Missing Auto-Scaling",
              "description": "Database connection pooler had no auto-scaling configured."
            }
          ]
        },
        {
          "items": [
            {
              "text": "Delayed Alerting",
              "description": "Latency alerts had a 15-minute delay due to aggregation window."
            }
          ]
        }
      ],
      "design": {
        "titleAlignment": "center",
        "contentAlignment": "center"
      }
    },
    {
      "layout": "list",
      "title": "Action Items",
      "blocks": [
        {
          "items": [
            {
              "text": "Increase Pool Size",
              "description": "Raise default to 100, add auto-scaling. Owner: Platform team. Due: March 22."
            }
          ]
        },
        {
          "items": [
            {
              "text": "Fix Alerting",
              "description": "Reduce aggregation window to 1 minute. Owner: SRE. Due: March 19."
            }
          ]
        },
        {
          "items": [
            {
              "text": "Load Testing",
              "description": "Add load test for 3x traffic before every launch. Owner: QA. Due: March 30."
            }
          ]
        }
      ],
      "design": {
        "titleAlignment": "center",
        "contentAlignment": "center"
      }
    }
  ],
  "narrative": "failure-analysis",
  "design": {
    "colorScheme": "slate-gray",
    "fontScheme": "calibri"
  },
  "catalogs": {
    "default": {
      "source": "https://www.pptx.gallery",
      "narratives": {
        "failure-analysis": {
          "name": "Failure Analysis",
          "summary": "Walk through what went wrong, why, and what changes — a structured post-mortem for stakeholder reviews. Pairs honest accountability with a credible recovery plan.",
          "audienceFit": [
            "leadership",
            "customers",
            "stakeholders",
            "partners"
          ],
          "duration": {
            "min": 15,
            "max": 45
          },
          "tags": [
            "postmortem",
            "incident",
            "review",
            "accountability"
          ],
          "beats": [
            {
              "id": "opening-remark",
              "name": "Opening Remark",
              "description": "Set an empathetic, accountable tone before any analysis. Acknowledge the impact on the people in the room and the customers affected. Authenticity here earns you the credibility you'll need for the rest of the deck.",
              "instructions": "Set an empathetic tone",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "incident-breakdown",
              "name": "Incident Breakdown",
              "description": "Walk through what happened, in time order. Stick to facts: what systems, what users, what timeline. No causal claims yet — just an accurate, neutral reconstruction the audience can trust.",
              "instructions": "Detail the failure",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "impact-analysis",
              "name": "Impact Analysis",
              "description": "Quantify the damage. Customer-hours lost, revenue at risk, SLA breaches, downstream knock-ons. Be specific and direct; vague impact statements undermine the rest of the post-mortem.",
              "instructions": "Describe failure's effects",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "root-cause",
              "name": "Root Cause",
              "description": "Trace the failure to its underlying cause, not the most visible symptom. Use a 'five whys' or fishbone framing if useful. Distinguish between the proximate trigger and the systemic conditions that allowed it.",
              "instructions": "Analyze underlying reasons",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "proposed-solutions",
              "name": "Proposed Solutions",
              "description": "Present the corrective actions you're taking. Lead with the highest-leverage fix; sequence the rest. For each action, name an owner and a date — solutions without owners are aspirations.",
              "instructions": "Suggest corrective measures",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "action-plan",
              "name": "Action Plan",
              "description": "Lay out the rollout: what ships when, how it's verified, who signs off. Show that 'fixed' has a definition and a deadline, not just intent.",
              "instructions": "Map out steps",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "evaluate-outcome",
              "name": "Evaluate Outcome",
              "description": "Define the metrics that will tell you the fix worked. Pre/post comparisons, monitoring SLOs, error budgets — whatever proves the failure mode is closed and not just deferred.",
              "instructions": "Assess corrective actions",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "lessons-learned",
              "name": "Lessons Learned",
              "description": "Distill the broader lessons that outlive this specific incident. What does the team or organization now know that it didn't before? What patterns will you watch for elsewhere?",
              "instructions": "Reflect on failure lessons",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "preventive-measures",
              "name": "Preventive Measures",
              "description": "List the systemic safeguards being added — process changes, automated checks, on-call procedures, review gates. Show how this category of failure becomes harder to recur, not just this specific instance.",
              "instructions": "List safeguards",
              "type": "text",
              "layout": "text"
            },
            {
              "id": "closing-thoughts",
              "name": "Closing Thoughts",
              "description": "Close with humility and forward momentum. Re-affirm accountability, thank the audience for their patience, and signal confidence in the path forward without overclaiming.",
              "layout": "closing",
              "instructions": "Empathize, trust, and encourage",
              "type": "text"
            }
          ]
        }
      },
      "colorSchemes": {
        "slate-gray": {
          "name": "Slate Gray",
          "summary": "Neutral gray palette for understated executive communication.",
          "description": "A disciplined gray scale with strong neutral contrast. Use it when the content should feel calm, mature, and analytical.",
          "accent1": "#9E9E9E",
          "accent2": "#424242",
          "accent3": "#616161",
          "accent4": "#757575",
          "accent5": "#9E9E9E",
          "accent6": "#212121",
          "dark1": "#000000",
          "dark2": "#1B1B1B",
          "light1": "#FFFFFF",
          "light2": "#F8F8F8",
          "hyperlink": "#212121",
          "followedHyperlink": "#424242",
          "tags": [
            "neutral",
            "minimal",
            "mature",
            "analytical",
            "restrained"
          ]
        }
      },
      "fontSchemes": {
        "calibri": {
          "name": "Calibri",
          "major": "Calibri",
          "minor": "Calibri",
          "type": "sans-serif",
          "app": "powerpoint",
          "languageFamily": "latin",
          "languages": [],
          "textSample": "Smooth professional look",
          "description": "Calibri is a sans serif OPF font scheme for Latin presentations, using Calibri for both headings and body text."
        }
      },
      "layouts": {
        "cover": {
          "name": "Cover",
          "summary": "The opening slide: title, subtitle and an optional picture.",
          "tags": [
            "Openers and closers"
          ],
          "design": {
            "titleAlignment": "center",
            "contentAlignment": "center"
          },
          "direction": "row",
          "regions": [
            {
              "name": "title"
            },
            {
              "name": "media",
              "accepts": [
                "image",
                "video"
              ],
              "role": "media",
              "flow": "none",
              "bleed": true
            }
          ],
          "description": "Open a presentation with its subject and a short introduction. Add a picture when it helps establish the context.",
          "preview": {
            "vectorSrc": "https://www.pptx.gallery/layout-previews/cover.svg"
          }
        },
        "metrics": {
          "name": "Metrics",
          "summary": "One to six headline numbers, with an optional note.",
          "tags": [
            "Numbers"
          ],
          "design": {
            "contentAlignment": "center"
          },
          "direction": "column",
          "regions": [
            {
              "name": "title"
            },
            {
              "name": "metrics",
              "accepts": [
                "metric",
                "group"
              ],
              "role": "primary",
              "flow": "grid",
              "anchor": "middle"
            },
            {
              "name": "note",
              "size": "auto",
              "accepts": [
                "text",
                "list"
              ],
              "role": "supporting",
              "flow": "none"
            }
          ],
          "description": "Highlight a small set of important numbers. Give each number a label and the context needed to interpret it.",
          "preview": {
            "vectorSrc": "https://www.pptx.gallery/layout-previews/metrics.svg"
          }
        },
        "list": {
          "name": "List",
          "summary": "Bulleted or numbered points; one long list flows into columns.",
          "tags": [
            "Text"
          ],
          "direction": "column",
          "regions": [
            {
              "name": "title"
            },
            {
              "name": "body",
              "accepts": [
                "list",
                "text",
                "group"
              ],
              "role": "primary",
              "flow": "auto",
              "listColumns": "auto"
            }
          ],
          "description": "Present several related points in a clear sequence. Use bullets for independent points or numbered items for an ordered list.",
          "preview": {
            "vectorSrc": "https://www.pptx.gallery/layout-previews/list.svg"
          }
        }
      }
    }
  }
}

Tips for Post-Mortem Decks

  1. Be blameless. Focus on systems and processes, not individuals.
  2. Quantify impact. Duration, affected users, revenue loss — concrete numbers drive urgency for fixes.
  3. Use timelines. A vertical list layout shows the incident progression clearly.
  4. End with action items. Every root cause should have an owner and a due date.
  5. Use slate-gray — it is professional and serious without being alarmist.

Next Steps