# Outage Board Packet — Workflow & QA Plan

**Date:** 2026-04-14  
**Owner:** Sofia (Support Operations)  
**Deadline:** Same-day, before afternoon COO review  

---

## Phase 1 — Document Creation (Incident Summary)

### Tool / Sub-Skill Selection
- **Primary:** `python-docx` → generates `Incident_Summary.docx`
- **Export:** `fpdf2` → generates `Incident_Summary.pdf`

### Action Sequence
1. Load `incident_timeline.csv` and `support_metrics_hourly.csv` for validated facts.
2. Draft incident summary structure (Window → Root Cause → Scope → Response → Next Steps).
3. Insert derived metrics: surge ratio, backlog delta, CSAT drop, MRR exposure.
4. Build response-action table from timeline CSV (time, severity, action, owner).
5. Apply board-ready formatting: Calibri 11pt, heading hierarchy, styled tables.
6. Save as `Incident_Summary.docx`.
7. Export `Incident_Summary.pdf`.

### Copy-Paste Prompt
```
Use @docx-official to create Word documents
```

### Quality Checks
- [ ] Incident window times match timeline CSV (07:58 detection → 09:12 stable)
- [ ] Surge ratio = peak inbound / baseline inbound = 3.0x
- [ ] CSAT drop = 11.6 pp (94.0% baseline → 82.4% trough)
- [ ] MRR exposure = $844,600
- [ ] All times displayed in PT timezone
- [ ] Table rows match all 13 timeline events

---

## Phase 2 — Spreadsheet Automation (KPI Sheet)

### Tool / Sub-Skill Selection
- **Primary:** `openpyxl` → generates `Outage_KPI_Sheet.xlsx`
- **Export:** `fpdf2` → generates `Outage_KPI_Sheet.pdf`

### Action Sequence
1. Create workbook with 4 tabs:
   - `Hourly_Support_Impact` — import `support_metrics_hourly.csv` + add formula columns
   - `Daily_Service_KPIs` — import `service_kpis_daily.csv`
   - `Affected_Accounts` — import `customer_impact_sample.csv`
   - `Executive_Summary` — derived KPI summary table
2. Add formula columns to Hourly tab:
   - Surge Ratio: `=B{row}/45.5` (baseline avg inbound)
   - Backlog Delta: `=D{row}-61` (baseline backlog)
   - CSAT Drop (pp): `=94.0-G{row}` (baseline CSAT)
3. Insert charts:
   - Bar chart: Hourly Inbound vs Resolved Tickets (Hourly tab)
   - Line chart: 14-Day Error Rate Trend (Daily tab)
4. Apply formatting: blue header fill, white bold header font, 18-char column widths.
5. Save as `Outage_KPI_Sheet.xlsx`.
6. Export `Outage_KPI_Sheet.pdf` (4 pages: Exec Summary, Hourly, Daily, Accounts).

### Copy-Paste Prompt
```
Use @xlsx-official to create Excel reports
```

### Quality Checks
- [ ] 4 tabs present with exact names from brief
- [ ] Formulas calculate correctly (spot-check: 08:00 surge ratio = 138/45.5 = 3.0x)
- [ ] Charts have labeled axes (Ticket Count, Error Rate %, Hour, Date)
- [ ] MRR values formatted with thousands separator
- [ ] Executive Summary metrics match values in DOCX and PPTX

---

## Phase 3 — Presentation Generation (6-Slide Recap)

### Tool / Sub-Skill Selection
- **Primary:** `python-pptx` → generates `COO_Recap_6_Slides.pptx`
- **Export:** `fpdf2` → generates `COO_Recap_6_Slides.pdf`

### Action Sequence
1. Build 6-slide storyboard per COO brief:
   | Slide | Title | Key Content |
   |-------|-------|-------------|
   | 1 | Incident Overview | SEV-1, 74 min, root cause, status |
   | 2 | Timeline of Events | 8 key events from 07:58–10:18 PT |
   | 3 | Customer & Revenue Exposure | 4 enterprise escalations, $844.6K MRR |
   | 4 | Support KPI Impact | Surge 3.0x, backlog +154, CSAT −11.6 pp |
   | 5 | Service KPI Trend & Recovery | 14-day view, error rate spike/recovery |
   | 6 | Corrective Actions & Ask | 5 actions + 2-sprint engineering ask |
2. Pull numbers from KPI workbook to ensure cross-file consistency.
3. Use widescreen layout (13.333" × 7.5"), 18pt bullet font.
4. Save as `COO_Recap_6_Slides.pptx`.
5. Export `COO_Recap_6_Slides.pdf` (6 landscape pages).

### Copy-Paste Prompt
```
Use @pptx-official to create PowerPoint presentations
```

### Quality Checks
- [ ] Exactly 6 slides (assertion enforced in build script)
- [ ] Slide titles are action-oriented per brief
- [ ] All numbers match DOCX and XLSX (surge ratio, CSAT drop, MRR, etc.)
- [ ] No blame language — factual, executive tone
- [ ] Visual density is low (≤8 bullets per slide)

---

## Phase 4 — Format Conversion (PDF Exports)

### Tool / Sub-Skill Selection
- **Primary:** `fpdf2`

### Action Sequence
1. Generate PDF for each Office file immediately after it is finalized.
2. Incident Summary PDF: portrait, 1 page, full content with tables.
3. KPI Sheet PDF: 4 pages (Exec Summary portrait; Hourly, Daily, Accounts landscape).
4. Slide Recap PDF: 6 landscape pages, one per slide.
5. Verify naming matches README exactly:
   - `Incident_Summary.pdf`
   - `Outage_KPI_Sheet.pdf`
   - `COO_Recap_6_Slides.pdf`

### Copy-Paste Prompt
```
Use @libreoffice-writer to convert documents
```

### Quality Checks
- [ ] 3 PDF files present in `deliverables/`
- [ ] PDFs open without error
- [ ] Page counts correct (1 + 4 + 6 = 11 total pages)
- [ ] No encoding errors (ASCII-safe text, no unicode dashes)
- [ ] Naming matches README spec exactly

---

## Cross-File Consistency Matrix

| Metric | DOCX | XLSX (Exec Tab) | PPTX (Slide) | Value |
|--------|------|-----------------|---------------|-------|
| Incident Window | Sec 1 | Row 2 | Slide 1 | 07:58–09:12 PT (74 min) |
| Peak Severity | Sec 1 | Row 3 | Slide 1 | SEV-1 |
| Ticket Surge Ratio | Sec 3 | Row 4 | Slide 4 | 3.0x |
| Peak Open Backlog | Sec 3 | Row 5 | Slide 4 | 215 |
| Backlog Delta | Sec 3 | Row 6 | Slide 4 | +154 |
| CSAT Trough | Sec 3 | Row 7 | Slide 4 | 82.4% |
| CSAT Drop | Sec 3 | Row 8 | Slide 4 | 11.6 pp |
| Total Escalations | Sec 3 | Row 9 | Slide 4 | 29 |
| Enterprise Escalations | Sec 3 | Row 10 | Slide 3 | 4 |
| Impacted MRR | Sec 3 | Row 11 | Slide 3 | $844,600 |
| Avg Degradation | Sec 3 | Row 12 | Slide 3 | 38.5 min |
| Outage-Day Uptime | — | Row 13 | Slide 5 | 99.41% |
| Outage-Day Error Rate | — | Row 14 | Slide 5 | 3.87% |

---

## Final QA Checklist (Gate Before Sending)

- [ ] Documents formatted correctly (DOCX headings, styled tables)
- [ ] Formulas working (XLSX formula columns calculate on open)
- [ ] Presentations complete (exactly 6 slides, action-oriented titles)
- [ ] Conversions successful (3 PDFs, no corruption)
- [ ] Automation tested (build script runs end-to-end without error)
- [ ] Files organized (all 7 deliverables in `deliverables/`)
- [ ] Microsoft formats created before PDFs
- [ ] Slide count is exactly 6
- [ ] Figures match across DOCX / XLSX / PPTX (see consistency matrix)
- [ ] All times in PT timezone
- [ ] No blame language in any document
- [ ] File names match `README.md` spec exactly

---

## Deliverables Manifest

| # | File | Format | Status |
|---|------|--------|--------|
| 1 | `Incident_Summary.docx` | Word | ✅ Generated |
| 2 | `Outage_KPI_Sheet.xlsx` | Excel | ✅ Generated |
| 3 | `COO_Recap_6_Slides.pptx` | PowerPoint | ✅ Generated |
| 4 | `Incident_Summary.pdf` | PDF | ✅ Generated |
| 5 | `Outage_KPI_Sheet.pdf` | PDF | ✅ Generated |
| 6 | `COO_Recap_6_Slides.pdf` | PDF | ✅ Generated |
| 7 | `Workflow_QA_Plan.md` | Markdown | ✅ This file |
