Shift Coverage Generator
Coverage planning is not the same problem as writing a rota. Before anyone is named, someone has to decide how many shifts start when, so that every hour has enough people on. This generates an hourly demand curve with a genuine peak, starts a shift whenever an hour would otherwise be short, and then recounts every hour from the rostered shifts — so the coverage is verified rather than assumed, and the paid slack that fixed shifts create is shown rather than glossed over.
What this generator does
Builds an hourly demand curve that peaks in the middle of the day, then sweeps forward starting shifts wherever an hour would be short. Every hour is recounted from the finished shift list before display, so coverage is proved rather than assumed.
How to use this tool
- Set how many hours the day spans and how busy the peak is.
- Generate and read the shifts and their start times.
- Compare staff-hours against demand hours — the gap is unavoidable slack.
- Re-run to see how a different demand shape changes the shift pattern.
Understanding the controls
- Hours in the day
- Between 4 and 24 hours to cover. The shift length is set to half the day, capped at eight hours.
- Peak demand
- How many staff the busiest hour needs: one hour in the middle half of the day needs exactly this many, and no hour needs more. The curve tapers away either side of it, with some hour-to-hour variation, so the peak is real rather than flat.
Common use cases
- Planning coverage before assigning any individual to a shift
- Showing why fixed-length shifts always cost more hours than demand
- Producing staffing exercises with a checkable coverage guarantee
- Generating demand curves for a rota tool to be tested against
- Teaching the difference between coverage planning and rostering
How this generator works
The sweep goes forward through the day. Whenever an hour has fewer staff on than it needs, a shift starts at exactly that hour with enough people to close the gap — the latest possible start that still covers it, which keeps as much of the shift as possible inside the busy period. A gap in the last few hours is closed by a shift that starts one shift-length before the day ends, so every shift on the list is a whole one. The table under the shifts gives every hour: staff needed, staff on, and how many are spare. Before display every hour is recounted by finding which shifts genuinely overlap it, rather than trusting the running total that built the plan, and the staff-hours are re-added from the shift list.
Randomness and fairness
Uses your browser's cryptographic random source for the demand curve by default. A seed reproduces the same demand and therefore the same coverage plan; that mode is deterministic and not cryptographically secure.
For how randomness is produced across the whole site, see how Generate Random works.
Limitations and good to know
- This decides how many people are needed when, not who works — names, availability, contracts and rest rules belong to a rota tool.
- Shifts are all the same length and cannot be split, so no part-time or overlapping split-shift patterns are considered.
- Breaks are not modelled, so a real plan needs additional cover on top of these numbers.
- The sweep gives the fewest staff-hours that whole shifts of this one length can. A mix of shift lengths, which is not considered, could cover a spiky day more cheaply.
Privacy and your data
The demand curve and the coverage plan are generated in your browser and never transmitted, stored or included in analytics.
Related generators
- Shift Rota GeneratorBuilds a staffing rota that covers every shift, honours days off and rest gaps, and shares the unpopular shifts out.
- Assembly Line Balancing GeneratorAssigns tasks with precedence rules to workstations under a fixed cycle time, and says how many stations the work alone would have needed.
- Duty Rota GeneratorBuild a duty rota across several rounds where everyone takes every duty once before anyone repeats one.
- Queue Waiting Time CalculatorClosed-form waiting times for a multi-server queue, with Little's law as the check and no finite answer offered for an unstable one.
- Carpool Rota GeneratorWorks out who drives on each journey, sharing the turns by how often each person travels and never putting anyone in a car too small.