Home › Rotating shifts › Dataset
Open data · v1.0.0
Shift rotation patterns, as data
The twenty-one rotations on this site, written out day by day and free to use. Take it, build on it, correct it — all we ask is a credit.
Version 1.0.0 · updated 2026-08-03 · CC BY 4.0
What is in it
Twenty-one rotations, each with the plain facts — the cycle written out one day at a time, how long the cycle runs, shift length, the average week, and whether crews rotate between tours.
And then the part that took the work: figures computed from the cycle rather than copied from anywhere.
- Whether the pattern locks to the weekdays. A cycle whose length divides by seven never drifts — so the crew you are on, not the rotation, decides which weekends you get. Ten of the twenty-one are like this, and almost nobody says so.
- Full weekends off a year, counted across 52 weeks from every starting position in the cycle, with the range across crews. A weekend counts only when both days are off.
- The blocks — the cycle read as runs of work and the breaks between them.
- The tightest turnaround — where the tour changes with the least time around it, which is the part of any rotation people actually remember.
BlueShifts. Plan Your Year. Own Your Time.
The shift calendar built for your rotation, off-duty work, and life on and off the clock.
Save this pattern once and the year fills itself in — forward as far as you want, and back over the months you have already worked.
A record, in full
{
"id": "panama-schedule",
"name": "Panama schedule",
"alsoKnownAs": "2-2-3, 2-3-2, 2-2-3-2-2-3, fixed Panama, rotating Panama",
"url": "https://www.policecalendarapp.com/rotating-shifts/panama-schedule/",
"cycleDays": 14,
"cycle": [
"day",
"day",
"off",
"off",
"day",
"day",
"day",
"off",
"off",
"day",
"day",
"off",
"off",
"off"
],
"cycleCompact": "ddoodddooddooo",
"daysOnPerCycle": 7,
"daysOffPerCycle": 7,
"shiftLength": "12 hours",
"averageWeekHours": "42 hours",
"rotatesTours": null,
"locksToWeekdays": true,
"fullWeekendsOffPerYear": {
"min": 0,
"max": 26,
"variesByCrew": true
},
"blocks": [
{
"kind": "day",
"days": 2
},
{
...
Using it
The license is CC BY 4.0. Use it commercially, change it, build a product on it — credit the source and you are fine.
A line that does the job:
Shift rotation patterns v1.0.0, BlueShifts — www.policecalendarapp.com/rotating-shifts/data/ — CC BY 4.0
What it is not
These are the common form of each pattern. Agencies run local variations, relief lines and arrangements with no name at all, and a bid or a collective agreement always governs the real schedule. The weekend and turnaround figures are arithmetic on the cycle, not a survey of what departments run. Treat it as the shape of a pattern, not a claim about anyone's roster.
Corrections
If a cycle here does not match how a pattern is genuinely worked, we want to know — the support page reaches us. Fixes go into the next version, and the version number and date at the top change with it.
Built on this data
- Which rotation am I on? — tap out your roster, get the name
- Weekends off — all 21 ranked
- The tools — everything computed from these cycles
Or skip the spreadsheet
Save your rotation once in the app and the calendar fills itself in — no data wrangling required.
Scan to install

