When Anthropic's API is most likely to be under strain — full week, hourly, Amsterdam time (CEST), from real status-incident data. Lower index = quieter.
Every hour of the week as one cell. A teal chevron-down marks the single quietest slot; a rose chevron-up marks the busiest. A red pin marks the current hour in Amsterdam local time. Hover any cell for details.
Midnight at the top, running clockwise. Each ring is a day (inner = Monday, outer = Sunday); each wedge is one hour. The quiet overnight arc opens up on the lower-left.
Seven stacked profiles of the 24-hour curve. The twin humps — Europe-morning and the bigger Americas-afternoon — flatten dramatically on the weekend ranges at the bottom.
The twelve calmest windows to start a long run, and the twelve to avoid. Bars are proportional to the Contention Index.
Collapsing the grid two ways: the average shape of a day (left), and how the days themselves compare (right).
The same daily curve, three years overlaid (Amsterdam time, normalized to each year's own peak = 100). The afternoon crunch has crept earlier as US-daytime usage came to dominate.
A transparent, reproducible model built from real per-year incident distributions — not a live signal.
status.claude.com/history.json feed that powers status.claude.com. We count capacity / elevated-error / overload ("529") incidents.raw[day][H] = hour[(H−2+24)%24] × day[day] (the −2 shifts UTC into Amsterdam, CEST = UTC+2) — then rescaled so the single busiest cell = 100. That rescaled value is the Contention Index (0–100)./model) can help regardless of the time of day.Per-hour profiles — index 0..23 = UTC 00:00..23:00, normalized to each window's own peak = 100:
Per-day profiles — Mon..Sun, normalized to each window's own peak = 100: