How Many Staff Do You Need for 24/7 Coverage?
Every 24/7 staffing question is the same calculation wearing different uniforms. Here it is once, properly — with the two numbers operations most often forget.
The base arithmetic
A week of continuous cover is 168 hours. One full-time person sustainably supplies about 42 rostered hours. So every seat that must be filled around the clock needs 168 ÷ 42 = 4 people — the four-crew constant behind every serious 24/7 pattern. A post needing 3 people on duty at all times therefore starts at 12 — before reality is invoiced.
The relief factor (reality's invoice)
Your staff take leave, get sick and attend training — none of which stops the clock. Count it honestly: 5-6 weeks leave + typical sickness + training ≈ 15-20% of working days absent. Cover it with the relief factor: multiply base headcount by 1 ÷ (1 − absence rate). At 18% absence, the 12-person post needs 12 × 1.22 ≈ 15 people — and the difference between 12 and 15 is precisely the overtime bill and burnout you've been calling a mystery. Relief shifts are how the margin gets operationalised.
Try it on your numbers
Coverage calculator
A worked example
A security contract requires 2 officers on site continuously. Base: 2 × 168 ÷ 42 = 8 officers (four crews of two, e.g. on 4 on 4 off). Honest absence at 16%: 8 ÷ 0.84 = 9.5 → 10 officers. The operator who bids the contract with 8 will spend the difference in overtime and churn; the one who staffs 10 will keep the contract.
Three refinements
Demand isn't flat: if nights genuinely need fewer people, define separate day and night posts before multiplying — that's where staggered, overlapping and power shifts earn their keep. Skills are posts too: 'one first-aider at all times' is its own 168-hour seat. Don't bank on overtime: above ~5% of hours it stops being a buffer and becomes structural understaffing with better PR.
Build this schedule in Tommy
Set the rotation once and Tommy fills the weeks ahead — shift swaps, leave and coverage gaps handled in one place, with your team always seeing the latest version.



