Markdown Tables in Incident Updates
Last updated: 2026-05-11
When you write an incident update, maintenance description, or status event body in StatusPage.me, you now have full markdown support, including tables. This means you can structure complex information clearly, whether you’re documenting what services are affected, what the current impact is, or what the remediation plan looks like.
For the broader workflow around posting incidents and maintenance updates, see Creating and Managing Incidents and Scheduling Planned Maintenance.
What Supports Markdown
Markdown tables render in:
- Incident updates: messages posted during an active incident
- Maintenance descriptions: details for upcoming or active maintenance windows
- Status event bodies: informational updates on the public status page
Writing a Markdown Table
Tables are written using pipe (|) and dash (-) characters. Here’s an example:
| Service | Status | ETA |
| ------------ | ----------- | ---------- |
| API | Degraded | 15 minutes |
| Dashboard | Operational | n/a |
| Auth Service | Down | 30 minutes |
Rendered, that looks like:
| Service | Status | ETA |
|---|---|---|
| API | Degraded | 15 minutes |
| Dashboard | Operational | n/a |
| Auth Service | Down | 30 minutes |
You can use emoji, color words, or any other text inside table cells. Inline markdown like **bold** and *italic* also works inside cells.
Why Tables Help During Incidents
Incidents are high-pressure situations. When you’re updating stakeholders every few minutes, a table gives readers exactly what they need without them having to parse a paragraph:
- What is affected (service, component, region)
- What state it’s in (operational, degraded, down)
- Any other context (ETA, workaround,责任人)
Structured updates also travel well; they copy-paste cleanly into Slack, email, and other tools your team uses during an incident.
If you post similar structured updates often, pair this with Incident Templates so your team starts from a consistent format.
Common Mistakes
Missing dashes in the header separator
Every column needs a separator row using dashes:
| Service | Status | ← Missing --- row
| API | Down |
Fix: Add a second row with at least three dashes per column:
| Service | Status |
| ------- | ------ |
| API | Down |
Blank lines inside the table
Don’t put blank lines between table rows. Blank lines break the table parser in most markdown implementations:
| Service | Status |
| API | Down | ← Blank line breaks the table
Write rows consecutively without blank lines between them.
CRLF line endings from copy-pasting
If you paste text from a Windows document or a rich text editor, the line endings may be CRLF (\r\n) instead of just LF (\n). This can cause the table to misrender in some browsers.
StatusPage.me normalizes CRLF automatically, so you don’t need to worry about this; but if you’re writing in an external editor, use a plain text environment to avoid hidden line-ending characters.
Example: A Structured Incident Update
Here’s a real-world update you might post during an incident:
### Current Impact
| Service | Region | Status |
| ------------ | ------- | ----------- |
| API Gateway | Global | Degraded |
| Auth Service | EU-West | Down |
| CDN | US-East | Operational |
### What We're Doing
- Escalated to engineering on-call
- Rollback of the 14:30 deployment in progress
- Monitoring for recovery
### Next Update
In 15 minutes, or sooner if there is a significant change.
The ### headings render as H3 sections, the table renders cleanly on the public page, and the bullet points give the reader a clear action list.