River
Y CombinatorBacked by Y Combinator

Free template

Incident Status Page Update Template

Status page updates from first post to resolution note, with a cadence for each severity and a log that shows which updates ran late.

Free download · No account needed

What you get

Pack of 10 files: 6 documents, 4 spreadsheets

Incident Status Page Update Template
  • How the Clock WorksDocument
  • Status Update Sequence by SeverityDocument
  • Customer NotificationDocument
  • Internal BriefDocument
  • Resolution NoteDocument
  • Worked Example, Halvard PayDocument
  • Notification LogSpreadsheet
  • Cadence Policy by SeveritySpreadsheet
  • Status Page Component MapSpreadsheet
  • Affected Customer RegisterSpreadsheet

How to write incident status page updates

An incident status page update is a short public post that tells customers what is broken, who is affected, what you're doing and when they'll hear from you next. A good one names the feature customers use, not your internal systems. It never guesses at a fix time, and it ends with a specific time for the next update, which you then keep.

The failure customers remember is rarely the wording. It's the silence: an update promised for 16:03 arrives at 16:44, and customers refreshing the page can't tell a team mid-repair from one that has gone home.

A man in a headset types at a desk in an emergency operations center, with wall screens of maps and data behind him
Updates arrive on time when writing them is one person's only job. Photo: CDC on Unsplash

Agree on cadence and roles before an incident

Decide the rules while nothing is broken. Google's SRE Workbook tells teams to prepare two or three ready-to-use templates1: "No one wants to write these announcements under extreme stress with no guidelines." Then set, for each severity, how soon the first update goes out and how often the rest follow.

Public playbooks give you a range. PagerDuty, which sells incident response software, publishes its own major-incident process. It calls for a first notice within 5 minutes of starting the incident call2, then updates at least every 20 minutes for the first two hours. Atlassian, which sells the Statuspage product, advises never going more than one hour without an update3 while customers are affected.

A starting cadence by severity

SeverityWhat customers seeFirst update withinThen every
Sev1A core action fails, such as signing in or paying15 minutes30 minutes, or 60 once a fix is being monitored
Sev2A core action is degraded, or a secondary one fails30 minutes60 minutes
Sev3A visible problem with a workaround4 hoursDaily, and posted publicly only after one working day

These are the template's defaults. If your severity levels are vague, define them first with an incident escalation matrix.

Then name who writes the updates. Google's SRE book walks through a scenario where the on-call engineer fixing an outage is far too busy to communicate clearly4, and customers are left frustrated. Give the job to one person with no technical task, named the moment you declare the incident.

Write the first status update before you know the cause

Post as soon as you confirm customers are affected. Google's SRE Workbook warns that unless you acknowledge an incident, people will automatically assume nothing is being done1 to resolve it. You won't know the cause yet, so use a shape that doesn't need one:

  • The component, using the name on your status page
  • What customers can't do, in their words: "card payments are being declined"
  • Who is affected: a named group, "some customers" or "all customers"
  • What isn't affected, if you're sure, such as stored card data
  • The time of the next update

Leave out anything you might have to take back: an unconfirmed cause, a supplier you haven't told, a percentage of affected customers worked out on the fly. Leave out internal names too. PagerDuty's training for its customer liaisons notes that customers don't care if application-server-123 is having issues5; they care that their notifications aren't arriving.

Name the next update time, and keep it

End every update with a clock time: "Next update by 16:03 UTC." Atlassian's guidance is to always indicate when to expect the next update3. An update that ends "shortly" has promised nothing, so it can never be late, and nobody notices when the next one takes an hour.

Keep the promise even when nothing has changed: "Still moving traffic to backup systems, impact unchanged, next update by 16:33 UTC" is a complete update. Atlassian notes that people left in the dark start to expect the worst3. For incidents past two hours, PagerDuty's guidelines allow a slower cadence2 to avoid empty updates, as long as each still says when the next will come.

Promise updates, never fixes. PagerDuty tells its liaisons not to estimate resolution times5: "Something else could happen, and customers get angry when you set an expectation you can't keep."

Label each update with the incident's state. Atlassian's Statuspage gives every incident one of four states6: Investigating (cause unknown), Identified (cause found), Monitoring (fix in, symptoms clearing) and Resolved (back to normal).

ExampleFive updates from one incidentAn illustrative example written for this guide. The company and times are made up.

14:31 UTC, Investigating: Some card payments in Europe are being declined. Stored card data is not affected. Next update by 15:00 UTC.

14:58 UTC, Identified: We have found the cause and are moving European payments to backup systems. Declines continue. Next update by 15:30 UTC.

15:29 UTC, Identified: The move is still under way, and declines are unchanged. Next update by 16:00 UTC.

15:58 UTC, Monitoring: Payments have gone through normally since 15:44 UTC. We are watching to confirm the fix holds. Next update by 16:45 UTC.

16:44 UTC, Resolved: Payments have worked normally since 15:44 UTC, and no payment data was lost. Payments declined from 14:12 to 15:44 UTC were not charged and are safe to retry. A full summary follows within five working days.

  • A time, not "shortly". Every update before the last says when the next will come.
  • No news still goes out. The 15:29 update adds nothing new, but it keeps the 15:30 promise.
  • No fix time. Even after the cause is found, nobody guesses when payments will recover.
  • An instruction to finish. The last update tells customers they weren't charged and can safely retry.

Brief support and contract customers separately

The status page talks to everyone, and two groups need more. Within the first hour, send support and account teams an internal brief. It covers what customers will have seen, sentences they can paste, what they must not say, and who decides on credits or refunds. Without one, they improvise answers the company then has to honor.

Some customers are owed direct notice. PagerDuty's guidelines say customers with special support contracts should also receive communication of impact delivered individually2. Read your enterprise and reseller agreements now for clauses that require notice to a named contact within a set window. Nobody reads contracts mid-incident, and a public post won't reach a named contact.

Some deadlines are set by law

US cable, wireless and wireline providers must notify the FCC within 120 minutes7 of discovering a reportable outage. An initial report follows within 72 hours and a final one within 30 days. If customer data may be exposed, follow your security incident response plan and ask a lawyer which notices apply.

Close with a resolution note

Post the Resolved update once recovery is confirmed. PagerDuty's guidelines say it should confirm full recovery and give a clear indication of any data loss or lingering corruption2, or say plainly that there is none. Then tell customers what to do: whether retries are safe, whether anything was charged twice, whether delayed data will arrive on its own.

Follow with a resolution note within a few working days, once the facts are settled. Give the impact window as clock times, such as 14:12 to 15:44 UTC, so customers can check it against their own logs. Add a few sentences on what happened and two or three specific changes. The full analysis belongs in a postmortem written from your incident data.

Consider one more line: your own cadence record. "We promised updates every 30 minutes, and the longest gap was 71 minutes" tells customers you measured what they lived through. They already know how long the silence was, because they were refreshing the page.

Before you post an update

  • It names a public component, not an internal service
  • It says what customers can't do, in their words
  • Scope is a named group, "some" or "all", not a guessed percentage
  • Nothing in it guesses at a fix time
  • It ends with the time of the next update
  • It goes out by the time the last update promised

The template on this page holds the cadence policy, the component map and a Notification Log of promised and actual update times. Open it with Edit with AI, and River measures the gaps in your last few incidents from your status page history.

How to use this template

Fill in the files by hand, or open them in River. Send River your status page history or the timelines of your last two or three incidents. It helps you map your services to status page components and set a cadence your team can keep. Then it fills in the Notification Log with each promised update time beside the real one. You learn the longest gap your customers actually sat through.

  1. Download it or open it in River

    Get the six Word documents and four CSV sheets free, or open the template in River and start from your last incident.

  2. Send your last few incidents

    Paste a status page history or incident timelines, then answer four questions on cadence and ownership, or accept the defaults.

  3. Get your policy and real gaps

    River writes the cadence policy and component map, logs each promised update beside the real one and reports your longest gap.

  4. Use it in the next incident

    River drafts each update to the same shape and logs it as you post. Afterward, it helps write the resolution note.

What's in the template

The gap a status page history cannot show youMinutes late and minutes since the previous update are different measurements. Only the second one is what the customer experienced.
Incident Status Page Update Template
RiverNotification Log

Notification Log

INC-2291, Sev1, card authorisation failures on the EU acquiring route. A fictional payments API, Halvard Pay. Declared 14:18, resolved 18:02.

UpdateStatePromised byPosted atMins lateGap
U1Investigating14:3314:31013
U2Investigating15:0115:04333
U3Identified15:3415:33029
U4Identified16:0316:444171
U5Monitoring17:1417:10026
U6Resolved18:1018:02052

Six updates posted, four on time, 66.7% compliance, 44 minutes late in total, worst gap 71 minutes against a 30-minute commitment. The first update landed 13 minutes after declaration, inside the 15-minute ceiling, because that is the part everybody gets right while the incident channel is still loud.

Nothing was wrong with the wording of U3 or U4. The failover started at 15:40 and both people on the comms rota were in it. The obligation existed, the timestamp existed, and nobody was left holding the clock.

RiverCadence Policy

Cadence Policy by Severity

Filled in calm conditions. This is the sheet that makes a 15-minute first update possible.

SevTriggerFirst update withinThen everyWhile monitoringPublic page
Sev1Customers cannot complete a core action15 min30 min60 minYes
Sev2A core action is degraded or a secondary one is failing30 min60 min60 minYes
Sev3Customer-visible with a workaround4 hoursDailyDailyPast one working day

Three rules live on the sheet rather than in a document nobody opens. Every update states the time of the next one, and that time is the commitment. A next-update time is never allowed to be a fix time. An update with nothing new still goes out, saying what is being checked.

Status Page Component Map

Public componentInternal servicesWhat a customer cannot doDefault sev
Card authorisationauth-gateway, acquiring-router, pool-managerPayments cannot be authorisedSev1
Payoutspayout-scheduler, bank-connectorMoney does not arrive when promisedSev1
Webhooksevent-dispatcher, retry-workerMerchant systems fall out of syncSev2
Sandboxsandbox-gatewayIntegration work is blocked, no live moneySev3, not shown publicly

The third column is the one that exists nowhere and the one the first update is written from. A 40-minute first update is almost never a writing problem; it is a responder deciding what to call the thing while the clock runs.

RiverAffected Customer Register

Affected Customer Register

One row per segment, not per account, because segments are what contracts follow.

SegmentAccountsNotification clauseWindowSatisfied by the status page
EU acquiring, standard terms341Nonen/aYes, nothing owed
EU acquiring, enterprise MSA38Sev1 notice within 4 hours240 minYes, U1 at 14:31
EU acquiring, regulated PSP resellers6Named contact within 60 minutes60 minNo
EU acquiring, sandbox and test keys27Nonen/aNo live traffic in the window

412 accounts on the affected route, 385 with live traffic. 44 of those, 11.4%, carry a contractual notification clause and 38 of them are met by the public update. Six, 1.6%, need a named human inside an hour and cannot be satisfied by a public page at all.

Six accounts is a small enough number to miss and an expensive enough number to have missed. They were reached at 15:02, 44 minutes after declaration, because the register had already named the contact and the window. Nobody read a contract during the incident. That outreach happens outside this space; the register's job was to find the six and route them.

  • How the Clock WorksWhy every update names the next one, and why minutes late and the gap between updates differ.
  • Status Update Sequence by SeverityThe four states, how often to post at each severity, what a first update says and what never goes in.
  • Customer NotificationWho hears what and through which channel, including contract clauses a public status page can't satisfy.
  • Internal BriefA brief for support and account teams: what customers saw, what they may say and what they must not.
  • Resolution NoteThe final update: the real impact window, what customers must do, what changes and your longest gap.
  • Worked Example, Halvard PayOne made-up payments incident, run from the first alert to the published resolution note.
  • Notification Log sheetEach update's promised time beside when it went out, with minutes late and the gap since the last.
  • Cadence Policy by Severity sheetFor each severity: the first-update deadline, how often to post, who declares and who owns updates.
  • Status Page Component Map sheetEach public component, the internal services behind it and what customers can't do when it fails.
  • Affected Customer Register sheetAffected customers by segment, with any contract notice clause and whether a status page post satisfies it.

Common questions

What should an incident status page update include?

The affected component by its public name, what customers can't do, who is affected, what has changed since the last update and the time of the next one. Add what isn't affected when you're sure. Leave out unconfirmed causes, internal system names, fix estimates and any percentage of affected customers you might have to correct later.

How often should you update a status page during an incident?

Every 30 minutes is a sound default for a major incident, after a first update within 15 minutes. Published guidance ranges from at least every 20 minutes (PagerDuty) to at least hourly (Atlassian). Slow down once a fix is being monitored, and always say when the next update will come.

Should you post an update when nothing has changed?

Yes. Post at the time you promised, say what the team is checking and confirm the impact is unchanged. A no-news update still tells customers someone is working on the problem. On a long incident, slow the cadence rather than skipping updates, and keep naming the next time.

Should a status page update give an estimated fix time?

No. A fix estimate is a guess made under pressure, and customers remember the one you miss. Promise the time of the next update instead, which you control. When the fix is in, move the incident to Monitoring and say what has recovered.

Who should write status page updates during an incident?

One named person who isn't working on the fix, often called the communications lead or customer liaison. Name them when you declare the incident. If the person writing updates is also doing the repair, the updates stop when the work gets hard. On a small incident, the incident commander can take the job.

Is this incident status page update template free?

Yes. The six Word documents and four CSV sheets download free with no signup. The sheets come filled in with a made-up payments company's incident, so you can see what goes in each column. Edit with AI opens the same files in a free River workspace.

What does Edit with AI do?

It opens the template in a free River workspace and asks for your last few incident timelines or a status page history. River helps you set a cadence and map your components, fills in the Notification Log, and reports how late each update was and the longest gap. It also flags customers whose contracts need direct notice. You post every update yourself.

Sources

  1. Google SRE. “Incident Response.” sre.google (opens in a new tab)

  2. PagerDuty Incident Response Documentation. “External Communication Guidelines.” response.pagerduty.com (opens in a new tab)

  3. Atlassian. “Incident Communication Best Practices & Channels.” atlassian.com (opens in a new tab)

  4. Google SRE. “Incident Management: Key to Restore Operations.” sre.google (opens in a new tab)

  5. PagerDuty Incident Response Documentation. “Customer Liaison.” response.pagerduty.com (opens in a new tab)

  6. Atlassian Support. “Create an incident.” support.atlassian.com (opens in a new tab)

  7. eCFR. “47 CFR 4.9.” ecfr.gov (opens in a new tab)

Written by

Chandler Supple

Co-founder & CEO, River

Chandler has spent the last six years working in AI, building tools for millions of users and Fortune 100 companies. In 2025, he co-founded River to build a new kind of operating system for AI agents.

Reviewed by

Brian Joseff, Co-founder, River