PageSourceSearch

https://turnozo.com/assets/how-to-create-rotating-schedule-BB-ZarG3.js

js turnozo.com collected 2026-09-28 10:37:14 UTC 33,083 bytes, 123 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a0e6c3-59e2-7550-aa3b-cb37b6b9aa2a")}catch(e){}}();import{j as e}from"./index-DKp-dPqd.js";import{u as l}from"./_slug-H8B7ugNk.js";import"./blog-DxdVczlA.js";import"./blog-ai-cta-D97gihEM.js";import"./sparkles-S5CkdO--.js";import"./circle-alert-DEstVKyO.js";import"./triangle-alert-grY0CI_4.js";import"./localized-link-C0fUAZzo.js";import"./header-VH8attz7.js";import"./calendar-days-Deyrv4IY.js";import"./faq-accordion-DVCUNQT8.js";import"./hotel-C7xaXBim.js";import"./optimized-image-Cf2sWKSn.js";import"./refresh-cw-Ckl9jFA7.js";import"./es-B_4TA26t.js";const P={title:"How to Create a Rotating Schedule: Pitman, DuPont, 2-2-3",slug:"how-to-create-rotating-schedule",description:"How to create a rotating schedule with 2-2-3, DuPont, and Pitman patterns, plus examples for 24/7 teams and shift-based operations.",publishedAt:"2026-02-24",updatedAt:"2026-07-29",author:"Diego Cárdenas",category:"guides",tags:["rotating-schedule","scheduling","shift-rotation","employee-scheduling","shift-patterns"],image:"/blog/how-to-create-rotating-schedule.png",imageAlt:"Rotating schedule pattern showing a 4-week cycle with day and night shifts across teams",featured:!1,draft:!1,readingTime:9,seo:{title:"How to Create a Rotating Schedule: Pitman, DuPont, 2-2-3",description:"Learn how to create a rotating schedule for 24/7 teams using 2-2-3, DuPont, and Pitman patterns, with examples and a free template.",keywords:["rotating schedule","rotating shift schedule","how to create rotating schedule","2-2-3 schedule","dupont schedule","pitman schedule","rotating shift pattern","24/7 shift schedule","4 on 4 off shift pattern"]},faq:[{q:"What is a rotating schedule?",a:"A rotating schedule is a system where employees cycle through different shifts (day, evening, night) or different days off over a set period. Instead of working the same hours every week, each team rotates through a pattern. This distributes weekend and night shifts more fairly across the team."},{q:"What is the most common rotating shift pattern?",a:"The 2-2-3 pattern (also called the Panama schedule) is one of the most widely used. Teams alternate working 2 days on, 2 days off, then 3 days on over a 14-day cycle. It gives every employee a 3-day weekend every other week and provides 24/7 coverage with just 4 teams."},{q:"Are rotating schedules better than fixed schedules?",a:"It depends on the business. Rotating schedules distribute unpopular shifts (nights, weekends) fairly, which reduces complaints about favoritism. But fixed schedules let employees build stable routines, which some workers prefer. For 24/7 operations that need night coverage, some form of rotation is usually necessary."},{q:"How do I switch from a fixed schedule to a rotating one?",a:"Give your team at least 4 weeks notice before the switch. Explain why you're changing and which pattern you're using. Start the rotation on a Monday so it's easy to track. Use scheduling software to build and share the rotation so everyone can see their upcoming shifts from their phone."},{q:"Can scheduling software handle rotating schedules?",a:"Yes. Tools like Turnozo let you build a rotation pattern, save it as a template, and copy it forward each cycle. Employees see their upcoming shifts on their phone, and you adjust exceptions without rebuilding the entire rotation from scratch."}]};function h(s){const t={a:"a",em:"em",h2:"h2",h3:"h3",li:"li",p:"p",span:"span",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...l(),...s.components},{Calculator:n,Quiz:i}=t;return n||d("Calculator"),i||d("Quiz"),e.jsxs(e.Fragment,{children:[e.jsx(t.p,{children:`You run a 24/7 operation and you're tired of the same three people getting stuck with every Friday night. Or your night crew is burning out because they never rotate off. Or your spreadsheet "rotation" is really just you guessing who hasn't worked weekends in a while.`}),`
2`,e.jsx(t.p,{children:"A proper rotating schedule fixes all of this. Shifts get distributed fairly, coverage stays consistent, and you stop fielding complaints about favoritism."}),`
3`,e.jsx(t.p,{children:"Here's how to build one that actually works, with examples for 2-2-3, DuPont, Pitman, 4-on-4-off, and Continental rotations."}),`
4`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Fast answer:"})," define your coverage needs, choose a rotation pattern, split employees into equal teams, map the full cycle, collect availability, publish the schedule early, and set rules for swaps, callouts, overtime, and rest periods before the first rota goes live."]}),`
5`,e.jsxs(t.h2,{id:"what-is-a-rotating-schedule",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#what-is-a-rotating-schedule",children:e.jsx(t.span,{className:"icon icon-link"})}),"What Is a Rotating Schedule?"]}),`
6`,e.jsx(t.p,{children:'A rotating schedule cycles employees through different shifts or different days off on a repeating pattern. Instead of "Sarah always works nights," everyone takes turns.'}),`
7`,e.jsx(t.p,{children:"The rotation happens on a fixed cycle, typically 14 or 28 days. Each team works the same total hours, just at different times during the cycle."}),`
8`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"When rotating schedules make sense:"})}),`
9`,e.jsxs(t.ul,{children:[`
10`,e.jsx(t.li,{children:"24/7 operations (care homes, warehouses, security)"}),`
11`,e.jsx(t.li,{children:"Businesses with unpopular shifts nobody wants permanently"}),`
12`,e.jsxs(t.li,{children:["Teams where perceived ",e.jsx(t.a,{href:"/blog/scheduling-fairness-kills-morale",children:"scheduling fairness"})," matters"]}),`
13`,e.jsx(t.li,{children:"Any operation with day, evening, and night shifts to cover"}),`
14`]}),`
15`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"When they don't:"})}),`
16`,e.jsxs(t.ul,{children:[`
17`,e.jsx(t.li,{children:"Small teams under 8 people (rotation gets complicated fast)"}),`
18`,e.jsx(t.li,{children:"Businesses that only operate during business hours"}),`
19`,e.jsxs(t.li,{children:["Teams where employees genuinely prefer ",e.jsx(t.a,{href:"/blog/set-schedules-vs-flexible-scheduling",children:"fixed schedules"})]}),`
20`]}),`
21`,e.jsxs(t.h2,{id:"the-5-most-common-rotating-schedule-patterns",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#the-5-most-common-rotating-schedule-patterns",children:e.jsx(t.span,{className:"icon icon-link"})}),"The 5 Most Common Rotating Schedule Patterns"]}),`
22`,e.jsxs(t.h3,{id:"1-the-2-2-3-panama-schedule",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#1-the-2-2-3-panama-schedule",children:e.jsx(t.span,{className:"icon icon-link"})}),"1. The 2-2-3 (Panama Schedule)"]}),`
23`,e.jsxs(t.p,{children:["The most popular rotating pattern. Works with ",e.jsx(t.strong,{children:"4 teams"})," on ",e.jsx(t.strong,{children:"12-hour shifts"})," over a ",e.jsx(t.strong,{children:"14-day cycle"}),"."]}),`
24`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"The pattern:"})}),`
25`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{}),e.jsx(t.th,{children:"Mon"}),e.jsx(t.th,{children:"Tue"}),e.jsx(t.th,{children:"Wed"}),e.jsx(t.th,{children:"Thu"}),e.jsx(t.th,{children:"Fri"}),e.jsx(t.th,{children:"Sat"}),e.jsx(t.th,{children:"Sun"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Week 1"})}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Week 2"})}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"})]})]})]}),`
26`,e.jsx(t.p,{children:"Each team follows this pattern but starts on a different day, so all shifts are always covered. Every employee gets a 3-day weekend every other week."}),`
27`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Best for:"})," Manufacturing, warehouses, care homes, any operation that needs 24/7 coverage without five separate teams."]}),`
28`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"The tradeoff:"})," 12-hour shifts are long. Some employees love the extra days off. Others burn out on the long days."]}),`
29`,e.jsxs(t.p,{children:["Before choosing a long rotation, compare the pattern with the ",e.jsx(t.a,{href:"/blog/shift-work-statistics",children:"shift-work prevalence and night-work health evidence"}),'. The useful question is not whether one template is universally "best," but how often it combines nights, long shifts, unstable hours, and short recovery windows.']}),`
30`,e.jsxs(t.h3,{id:"2-the-dupont-schedule",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#2-the-dupont-schedule",children:e.jsx(t.span,{className:"icon icon-link"})}),"2. The DuPont Schedule"]}),`
31`,e.jsxs(t.p,{children:["A ",e.jsx(t.strong,{children:"28-day cycle"})," with ",e.jsx(t.strong,{children:"4 teams"})," on ",e.jsx(t.strong,{children:"12-hour shifts"}),". The big selling point: one full week off every 28 days."]}),`
32`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"The pattern (per team, 28-day cycle):"})}),`
33`,e.jsxs(t.ul,{children:[`
34`,e.jsx(t.li,{children:"4 night shifts, 3 days off"}),`
35`,e.jsx(t.li,{children:"3 day shifts, 1 day off, 3 night shifts"}),`
36`,e.jsx(t.li,{children:"3 days off, 4 day shifts"}),`
37`,e.jsx(t.li,{children:"7 days off"}),`
38`]}),`
39`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Best for:"})," Operations where employees value long stretches off. Popular in manufacturing and chemical plants."]}),`
40`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"The tradeoff:"})," The transition from nights to days mid-cycle is rough. The week off is great, but the schedule leading up to it can feel punishing."]}),`
41`,e.jsxs(t.h3,{id:"3-the-pitman-schedule",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#3-the-pitman-schedule",children:e.jsx(t.span,{className:"icon icon-link"})}),"3. The Pitman Schedule"]}),`
42`,e.jsxs(t.p,{children:["A ",e.jsx(t.strong,{children:"14-day cycle"})," similar to 2-2-3 but with a different distribution."]}),`
43`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"The pattern:"})}),`
44`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{}),e.jsx(t.th,{children:"Mon"}),e.jsx(t.th,{children:"Tue"}),e.jsx(t.th,{children:"Wed"}),e.jsx(t.th,{children:"Thu"}),e.jsx(t.th,{children:"Fri"}),e.jsx(t.th,{children:"Sat"}),e.jsx(t.th,{children:"Sun"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Week 1"})}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Week 2"})}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"ON"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"})]})]})]}),`
45`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Best for:"})," Teams that want every other weekend off as a guaranteed block."]}),`
46`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"The tradeoff:"})," Similar to 2-2-3 but the 3-day mid-week gap can feel scattered for some people."]}),`
47`,e.jsxs(t.h3,{id:"4-the-4-on-4-off-schedule",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#4-the-4-on-4-off-schedule",children:e.jsx(t.span,{className:"icon icon-link"})}),"4. The 4-On-4-Off Schedule"]}),`
48`,e.jsxs(t.p,{children:["The simplest 24/7 pattern. ",e.jsx(t.strong,{children:"4 teams"})," on ",e.jsx(t.strong,{children:"12-hour shifts"})," with an ",e.jsx(t.strong,{children:"8-day cycle"}),". Work 4, rest 4, repeat."]}),`
49`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"The pattern:"})}),`
50`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{}),e.jsx(t.th,{children:"Day 1"}),e.jsx(t.th,{children:"Day 2"}),e.jsx(t.th,{children:"Day 3"}),e.jsx(t.th,{children:"Day 4"}),e.jsx(t.th,{children:"Day 5"}),e.jsx(t.th,{children:"Day 6"}),e.jsx(t.th,{children:"Day 7"}),e.jsx(t.th,{children:"Day 8"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team A"})}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team B"})}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team C"})}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team D"})}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"off"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"})]})]})]}),`
51`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Best for:"})," Warehouses, security, and operations that value simplicity over flexibility. Employees know exactly when they work months ahead."]}),`
52`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"The tradeoff:"})," 4 consecutive 12-hour shifts is physically demanding. And because the cycle doesn't align with the weekly calendar, weekends off are random."]}),`
53`,e.jsxs(t.h3,{id:"5-the-continental-schedule-3-shift-8-hour",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#5-the-continental-schedule-3-shift-8-hour",children:e.jsx(t.span,{className:"icon icon-link"})}),"5. The Continental Schedule (3-Shift, 8-Hour)"]}),`
54`,e.jsxs(t.p,{children:["For operations that can't do 12-hour shifts. Uses ",e.jsx(t.strong,{children:"4 teams"})," on ",e.jsx(t.strong,{children:"8-hour shifts"})," over a ",e.jsx(t.strong,{children:"28-day cycle"}),". Each team rotates through mornings, evenings, and nights."]}),`
55`,e.jsx(t.p,{children:e.jsx(t.strong,{children:"The rotation (per team, simplified):"})}),`
56`,e.jsxs(t.ul,{children:[`
57`,e.jsx(t.li,{children:"7 morning shifts (6 AM to 2 PM)"}),`
58`,e.jsx(t.li,{children:"2 days off"}),`
59`,e.jsx(t.li,{children:"7 evening shifts (2 PM to 10 PM)"}),`
60`,e.jsx(t.li,{children:"2 days off"}),`
61`,e.jsx(t.li,{children:"7 night shifts (10 PM to 6 AM)"}),`
62`,e.jsx(t.li,{children:"3 days off"}),`
63`]}),`
64`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Best for:"})," Healthcare, manufacturing plants with union agreements limiting shift length, and team
64s where 12-hour shifts cause safety concerns (heavy machinery, patient care)."]}),`
65`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"The tradeoff:"})," 7 consecutive shifts of any type is tiring. The night-to-morning transition after only 3 days off is the roughest part. Some teams modify this with shorter runs (5 on, 2 off) but that requires a 5th team."]}),`
66`,e.jsxs(t.h3,{id:"which-pattern-should-i-pick",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#which-pattern-should-i-pick",children:e.jsx(t.span,{className:"icon icon-link"})}),"Which Pattern Should I Pick?"]}),`
67`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{children:"If your situation is..."}),e.jsx(t.th,{children:"Use this pattern"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"First time rotating, want something simple"}),e.jsx(t.td,{children:e.jsx(t.strong,{children:"2-2-3"})})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Team values long breaks over short cycles"}),e.jsxs(t.td,{children:[e.jsx(t.strong,{children:"DuPont"})," (7 days off every 28)"]})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Every-other-weekend off is the priority"}),e.jsx(t.td,{children:e.jsx(t.strong,{children:"Pitman"})})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Maximum simplicity, predictable months ahead"}),e.jsx(t.td,{children:e.jsx(t.strong,{children:"4-on-4-off"})})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"12-hour shifts aren't an option"}),e.jsxs(t.td,{children:[e.jsx(t.strong,{children:"Continental"})," (8-hour)"]})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Small team (8-12 people), 2 shifts only"}),e.jsxs(t.td,{children:[e.jsx(t.strong,{children:"Alternating weeks"})," (week A days, week B nights)"]})]})]})]}),`
68`,e.jsx(t.p,{children:"When in doubt, start with the 2-2-3. It's the most widely used for a reason."}),`
69`,e.jsx(i,{id:"rotation-pattern-finder",title:"Which Rotation Pattern Fits Your Team?",description:"Answer 3 questions to find the right pattern.",questions:[{question:"How long are your shifts?",options:[{label:"12 hours",points:{twotwo:2,dupont:2,pitman:2,fouron:2}},{label:"8 hours",points:{continental:3}},{label:"Not sure yet",points:{twotwo:2}}]},{question:"What matters most to your team?",options:[{label:"Regular weekends off",points:{pitman:3}},{label:"A full week off every month",points:{dupont:3}},{label:"Simple and predictable",points:{fouron:3,twotwo:2}},{label:"Shortest possible cycle",points:{fouron:3}}]},{question:"How many people on your team?",options:[{label:"Under 16",points:{twotwo:3,pitman:2}},{label:"16-30",points:{twotwo:2,dupont:2}},{label:"30+",points:{dupont:2,continental:2}}]}],results:[{key:"twotwo",title:"2-2-3 (Panama)",description:"The most popular pattern. 4 teams, 12-hour shifts, 14-day cycle. Every employee gets a 3-day weekend every other week. Best starting point for most teams.",icon:"📅"},{key:"dupont",title:"DuPont",description:"28-day cycle with a full week off every month. More complex but employees love the extended break. Best for teams that value long recovery periods.",icon:"🏖️"},{key:"pitman",title:"Pitman",description:"14-day cycle designed to give every other weekend off as a guaranteed block. Best when weekend time matters most to your team.",icon:"📆"},{key:"fouron",title:"4-On-4-Off",description:"The simplest pattern. 8-day cycle, work 4 days, rest 4 days. Employees know their schedule months in advance. Best for operations that value maximum predictability.",icon:"🔄"},{key:"continental",title:"Continental (8-hour)",description:"28-day cycle with 8-hour shifts instead of 12. Best for healthcare, manufacturing, or anywhere that can't do 12-hour days for safety or union reasons.",icon:"🏥"}],globalCta:{text:"Build your rotation in Turnozo",url:"https://app.turnozo.com/signup?ref=blog_en_how_to_create_rotating_schedule__intent_rotating_schedule&intent=rotating_schedule"}}),`
70`,e.jsxs(t.h2,{id:"how-to-build-your-rotating-schedule-step-by-step",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#how-to-build-your-rotating-schedule-step-by-step",children:e.jsx(t.span,{className:"icon icon-link"})}),"How to Build Your Rotating Schedule (Step by Step)"]}),`
71`,e.jsx(n,{id:"rotation-team-size",title:"How Many People Do You Need for 24/7 Coverage?",description:"Calculate the minimum team size for your rotation based on shifts and coverage requirements.",inputs:[{key:"perShift",label:"People needed per shift",min:1,max:20,default:3},{key:"shifts",label:"Shifts per day",min:2,max:3,default:2},{key:"hours",label:"Hours per shift",min:8,max:12,default:12}],compare:[{label:"Positions to fill daily",formula:"perShift * shifts",badge:"Daily coverage"},{label:"Minimum team size (with days off)",formula:"perShift * shifts * (hours == 12 ? 2 : 1.75)",badge:"Including rotation buffer"},{label:"Recommended (with absence buffer)",formula:"perShift * shifts * (hours == 12 ? 2.2 : 2)",badge:"+10% for sick days"}],resultSuffix:" people",insight:({perShift:r,shifts:c,hours:o})=>{const u=(o.raw===12,4),a=Math.ceil(r.raw*c.raw*(o.raw===12?2:1.75));return e.jsxs(e.Fragment,{children:["You need at least ",a," people split across ",u," teams. Each team gets ",r.fmt," people per shift. With a 10% absence buffer, aim for ",Math.
71ceil(a*1.1),"."]})},ctaText:"Build your rotation in Turnozo",ctaLink:"https://app.turnozo.com/signup?ref=blog_en_how_to_create_rotating_schedule__intent_rotating_schedule&intent=rotating_schedule"}),`
72`,e.jsxs(t.h3,{id:"step-1-figure-out-your-coverage-needs",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-1-figure-out-your-coverage-needs",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 1: Figure out your coverage needs"]}),`
73`,e.jsx(t.p,{children:"Before picking a pattern, answer these:"}),`
74`,e.jsxs(t.ul,{children:[`
75`,e.jsx(t.li,{children:"How many shifts per day? (2 shifts of 12 hours, or 3 shifts of 8 hours?)"}),`
76`,e.jsx(t.li,{children:"How many people do you need per shift?"}),`
77`,e.jsx(t.li,{children:"Do weekends need the same coverage as weekdays?"}),`
78`]}),`
79`,e.jsx(t.p,{children:"Multiply it out. If you need 3 people per shift and you run 3 shifts a day, that's 9 positions to fill per day. With days off factored in, you probably need 12-15 people minimum."}),`
80`,e.jsxs(t.h3,{id:"step-2-pick-your-rotation-pattern",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-2-pick-your-rotation-pattern",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 2: Pick your rotation pattern"]}),`
81`,e.jsx(t.p,{children:"Use this as a guide:"}),`
82`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{children:"Pattern"}),e.jsx(t.th,{children:"Teams"}),e.jsx(t.th,{children:"Shift Length"}),e.jsx(t.th,{children:"Cycle"}),e.jsx(t.th,{children:"Best For"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"2-2-3"}),e.jsx(t.td,{children:"4"}),e.jsx(t.td,{children:"12 hours"}),e.jsx(t.td,{children:"14 days"}),e.jsx(t.td,{children:"Most 24/7 operations"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"DuPont"}),e.jsx(t.td,{children:"4"}),e.jsx(t.td,{children:"12 hours"}),e.jsx(t.td,{children:"28 days"}),e.jsx(t.td,{children:"When long breaks matter"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Pitman"}),e.jsx(t.td,{children:"4"}),e.jsx(t.td,{children:"12 hours"}),e.jsx(t.td,{children:"14 days"}),e.jsx(t.td,{children:"Weekend-focused teams"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"4 on, 4 off"}),e.jsx(t.td,{children:"4"}),e.jsx(t.td,{children:"12 hours"}),e.jsx(t.td,{children:"8 days"}),e.jsx(t.td,{children:"Simple, predictable"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:"Continental"}),e.jsx(t.td,{children:"4"}),e.jsx(t.td,{children:"8 hours"}),e.jsx(t.td,{children:"28 days"}),e.jsx(t.td,{children:"When 12-hour shifts are too long"})]})]})]}),`
83`,e.jsx(t.p,{children:"If your team is small (under 16 people), stick with the 2-2-3 or Pitman. Simpler patterns are easier to maintain and easier for employees to remember."}),`
84`,e.jsxs(t.h3,{id:"step-3-assign-teams",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-3-assign-teams",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 3: Assign teams"]}),`
85`,e.jsx(t.p,{children:"Split your staff into equal groups. Label them A, B, C, D (or whatever works). Each team follows the same pattern but offset by one position."}),`
86`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Important:"})," Balance the teams by skill level. Don't put all your senior people on Team A and all the new hires on Team D. Every team needs someone experienced enough to handle problems."]}),`
87`,e.jsxs(t.h3,{id:"step-4-map-it-out",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-4-map-it-out",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 4: Map it out"]}),`
88`,e.jsx(t.p,{children:"Build the full cycle on a calendar. Here's what a 2-2-3 looks like for all 4 teams over 2 weeks:"}),`
89`,e.jsxs(t.table,{children:[e.jsx(t.thead,{children:e.jsxs(t.tr,{children:[e.jsx(t.th,{}),e.jsx(t.th,{children:"Mon"}),e.jsx(t.th,{children:"Tue"}),e.jsx(t.th,{children:"Wed"}),e.jsx(t.th,{children:"Thu"}),e.jsx(t.th,{children:"Fri"}),e.jsx(t.th,{children:"Sat"}),e.jsx(t.th,{children:"Sun"})]})}),e.jsxs(t.tbody,{children:[e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team A"})}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team B"})}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team C"})}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"Day"}),e.jsx(t.td,{children:"Day"})]}),e.jsxs(t.tr,{children:[e.jsx(t.td,{children:e.jsx(t.strong,{children:"Team D"})}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"Night"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"}),e.jsx(t.td,{children:"-"})]})]})]}),`
90`,e.jsx(t.p,{children:e.jsx(t.em,{children:"(Simplified, actual 2-2-3 rotations are more detailed)"})}),`
91`,e.jsxs(t.h3,{id:"step-5-collect-availability-before-you-finalize",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-5-collect-availability-before-you-finalize",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 5: Collect ",e.jsx(t.a,{href:"/blog/manage-employee-availability",children:"availability"})," before you finalize"]}),`
92`,e.jsx(t.p,{children:"Even in a rotation, people have constraints. Someone might have a medical appointment every other Thursday. Another person can't do nights for health reasons. Collect this upfront so you can make adjustments before publishing, not after."}),`
93`,e.jsxs(t.h3,{id:"step-6-publish-and-communicate",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-6-publish-and-communicate",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 6: Publish and communicate"]}),`
94`,e.jsxs(t.p,{children:["Give your team at least 4 weeks notice before a major rotation change when you can. Two weeks is the bare minimum for minor tweaks, but a full pattern change affects sleep, childcare, second jobs, and transport. Share the full cycle so people can plan around it. If you're using ",e.jsx(t.a,{href:"/blog/what-to-look-for-employee-scheduling-software",children:"scheduling software"}),", publish it once and let everyone check their phone."]}),`
95`,e.jsxs(t.h3,{id:"step-7-build-in-a-way-to-handle-exceptions",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#step-7-build-in-a-way-to-handle-exceptions",children:e.jsx(t.span,{className:"icon icon-link"})}),"Step 7: Build in a way to handle exceptions"]}),`
96`,e.jsx(t.p,{children:"Rotations look perfect on paper. Then someone gets sick, someone quits, and someone else needs to swap shifts. Your rotation needs a plan for this:"}),`
97`,e.jsxs(t.ul,{children:[`
98`,e.jsxs(t.li,{children:[e.jsx(t.strong,{children:"Shift swaps:"})," Let employees trade shifts with each other (with your approval)"]}),`
99`,e.jsxs(t.li,{children:[e.jsx(t.strong,{children:"Open shifts:"})," When someone calls out, ",e.jsx(t.a,{href:"/blog/one-callout-breaks-your-day-staffing-problem",children:"post the shift as open"})," and let available people claim it"]}),`
100`,e.jsxs(t.li,{children:[e.jsx(t.strong,{children:"Overtime rules:"})," Decide in advance how you handle coverage gaps, whether you ask for volunteers first or assign mandatory overtime"]}),`
101`]}),`
102`,e.jsxs(t.h2,{id:"common-mistakes-and-how-to-avoid-them",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#common-mistakes-and-how-to-avoid-them",children:e.jsx(t.span,{className:"icon icon-link"})}),"Common Mistakes (and How to Avoid Them)"]}),`
103`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Rotating too fast."})," Switching from nights to days every few days wrecks sleep patterns. The ",e.jsx(t.a,{href:"/blog/night-shift-scheduling-guide",children:"research on night shift health"})," is clear: forward rotation (days to evenings to nights) with at least 2-3 
103consecutive days on the same shift is healthiest."]}),`
104`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Ignoring employee input."})," Posting a rotation without asking anyone's preferences is a fast way to lose your best people. The schedule doesn't have to make everyone happy, but people need to feel ",e.jsx(t.a,{href:"/blog/scheduling-fairness-kills-morale",children:"heard"}),"."]}),`
105`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"No template, rebuilding every cycle."})," If you're recreating the rotation from scratch every 2-4 weeks, you're wasting hours. Save the pattern as a template and copy it forward. Adjust exceptions, don't rebuild."]}),`
106`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Unbalanced teams."})," If Team A has 3 senior carers and Team D has none, you'll have coverage problems every time Team D works nights. Audit team composition regularly, especially after turnover."]}),`
107`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Ignoring rest periods and overtime rules."})," A rotation can look fair on a spreadsheet and still create illegal or unsafe short turnarounds. Check local labor rules, union agreements, and maximum-hours policies before publishing."]}),`
108`,e.jsxs(t.h2,{id:"tools-to-manage-rotating-schedules",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#tools-to-manage-rotating-schedules",children:e.jsx(t.span,{className:"icon icon-link"})}),"Tools to Manage Rotating Schedules"]}),`
109`,e.jsx(t.p,{children:"A rotating schedule that lives in a spreadsheet works until it doesn't. The moment someone swaps a shift or calls in sick, your spreadsheet is out of date and nobody knows it."}),`
110`,e.jsxs(t.p,{children:[e.jsx(t.a,{href:"/blog/employee-scheduling-guide",children:"Scheduling software"})," handles rotations by letting you:"]}),`
111`,e.jsxs(t.ul,{children:[`
112`,e.jsx(t.li,{children:"Build the pattern once and copy it forward"}),`
113`,e.jsx(t.li,{children:"Publish to everyone's phone so the schedule is always current"}),`
114`,e.jsx(t.li,{children:"Let employees request swaps and see their upcoming shifts"}),`
115`,e.jsxs(t.li,{children:["Track actual ",e.jsx(t.a,{href:"/blog/how-to-track-employee-hours",children:"hours worked"})," against what was scheduled"]}),`
116`]}),`
117`,e.jsxs(t.p,{children:["If you're running a rotation for more than 10 people, the ",e.jsx(t.a,{href:"/blog/spreadsheet-vs-scheduling-software-when-to-switch",children:"time saved vs. spreadsheets"})," pays for itself in the first month."]}),`
118`,e.jsxs(t.h2,{id:"start-with-the-simplest-pattern-that-covers-your-needs",children:[e.jsx(t.a,{"aria-hidden":"true",tabIndex:"-1",href:"#start-with-the-simplest-pattern-that-covers-your-needs",children:e.jsx(t.span,{className:"icon icon-link"})}),"Start With the Simplest Pattern That Covers Your Needs"]}),`
119`,e.jsx(t.p,{children:"The biggest mistake is picking a complicated rotation because it looks thorough. Start simple. The 2-2-3 covers most 24/7 operations with 4 teams and 12-hour shifts. If that doesn't fit, try the Pitman. Only move to DuPont or Continental if you have specific reasons (employee demand for longer breaks, 8-hour shift requirements, etc.)."}),`
120`,e.jsx(t.p,{children:"The best rotation is the one your team actually understands and can follow. Build it, publish it, and handle exceptions as they come."}),`
121`,e.jsxs(t.p,{children:[e.jsx(t.strong,{children:"Need help building a rotating schedule?"})," ",e.jsx(t.a,{href:"/tools/schedule-template",children:"Try our free employee schedule template"})," or ",e.jsx(t.a,{href:"/scheduling",children:"see how Turnozo handles shift scheduling"}),"."]})]})}function I(s={}){const{wrapper:t}={...l(),...s.components};return t?e.jsx(t,{...s,children:e.jsx(h,{...s})}):h(s)}function d(s,t){throw new Error("Expected component `"+s+"` to be defined: you likely forgot to import, pass, or provide it.")}export{I as default,P as frontmatter};
122
123//# chunkId=01a0e6c3-59e2-7550-aa3b-cb37b6b9aa2a

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.