1. Add your incidents
Needs a timestamp column and a responder column. Resolved time, service, urgency and title make the answer better.
Choose a file or paste CSV text, then click Analyze.
Result
What to do first
Load per person
| Person | Pages | Night | Evening / weekend | Business hours | Share of load | vs even split | Median resolve |
|---|
Noisiest alerts
| Alert | Service | Pages | At night | Self-resolved | Repeats |
|---|
Worst nights (three or more pages)
| Night beginning | Pages | People woken |
|---|
The rules, and what they leave out
- Weighted load — a night page counts 3, an evening or weekend page 2, a business-hours page 1. Each person is compared with an even split of the total.
- Overloaded — 1.5 times an even split or more, with at least two people in the file.
- Self-resolved — resolved within the minutes you set, which usually means nobody had to act.
- Repeat — the same alert (numbers, hosts and ids ignored) on the same service within 30 minutes of its last page. A page is counted as one or the other, never both.
- Hours — an assumption, not a measurement: 20 minutes of lost focus per daytime page and 45 per night page.
- Reconciles. People, services, alerts and the three time-of-day groups all add up to the same page total.
- Not modelled: per-person timezones, who was primary or secondary, severity beyond the urgency column, and the effort behind a page. Pages are not stress, so use this to start a conversation, not to rate a person.
Common questions
How do I tell if my on-call rotation is unfair?
Export your incident history as CSV, paste it here and read the share-of-load column. Each page is weighted by when it landed (a night page counts three times a business-hours page, an evening or weekend page twice) and each person is compared with an even split. Anyone at 1.5 times an even split or more is flagged, and the Gini figure summarises how uneven the whole team is.
What counts as a noisy or avoidable page?
A page is flagged as avoidable when it resolved within a few minutes (default 5), which usually means the alert fixed itself and nobody needed to wake up, or when the same alert on the same service fired again within 30 minutes, which adds a page but no new information. A page is counted once, never as both.
Which export format does it read?
Any CSV with a timestamp column and a responder column. It recognises the common PagerDuty, Opsgenie and Grafana OnCall column names (created_at, resolved_at, service, assigned_to, urgency, title) and tells you the columns it found if it cannot match them.
Is my incident data uploaded anywhere?
No. The file is parsed in your browser tab and nothing is sent anywhere. Incident titles can name internal systems, which is why there is no upload and no account.
How are night pages decided, and what about people in other timezones?
By the local hour of the page after you set one UTC offset for the team. The window defaults to 22:00 to 07:00. Per-person timezones are not modelled, so for a follow-the-sun rotation run the tool once per region with that region's offset.
Is this HR or management advice?
No. It applies fixed counting rules to the file you give it. Pages are not the same as effort, severity or stress, so use the output to start a conversation with your team, not to rate a person.