Code tool

Shift Coverage Calculator

Enter named JSON scenarios. demand: role/start/end/people. shifts: id (optional)/role/start/end/people/paidBreak/breaks; each break has start/end. All times require YYYY-MM-DDTHH:mm:ss±HH:mm or Z; overnight shifts require the next date. Identified people have people=1 and cannot overlap. Overlapping demand rows add together. paidBreak=true pays break time but removes coverage. Up to 20 scenarios, 100 demand and shift rows each, 20 breaks per shift and 50,000 coverage rows in total. Years 1900–2200; fixed offsets only, no daylight-saving rules.

In-browser processingNo account requiredPrivacy details ↗

Enter named JSON scenarios. demand: role/start/end/people. shifts: id (optional)/role/start/end/people/paidBreak/breaks; each break has start/end. All times require YYYY-MM-DDTHH:mm:ss±HH:mm or Z; overnight shifts require the next date. Identified people have people=1 and cannot overlap. Overlapping demand rows add together. paidBreak=true pays break time but removes coverage. Up to 20 scenarios, 100 demand and shift rows each, 20 breaks per shift and 50,000 coverage rows in total. Years 1900–2200; fixed offsets only, no daylight-saving rules.

User-supplied staffing arithmetic only. No legal rest, pay entitlement, safety or fatigue recommendation. All intervals are half-open [start,end); every demand, shift and break boundary is evaluated.

Ready to calculate.

A QUICK WALKTHROUGH

How to use this tool

  1. Scenario JSON: Enter named JSON scenarios. demand: role/start/end/people. shifts: id (optional)/role/start/end/people/paidBreak/breaks; each break has start/end. All times require YYYY-MM-DDTHH:mm:ss±HH:mm or Z; overnight shifts require the next date. Identified people have people=1 and cannot overlap. Overlapping demand rows add together. paidBreak=true pays break time but removes coverage. Up to 20 scenarios, 100 demand and shift rows each, 20 breaks per shift and 50,000 coverage rows in total. Years 1900–2200; fixed offsets only, no daylight-saving rules.
  2. Calculate
  3. Copy full report / Download TXT

Method

User-supplied staffing arithmetic only. No legal rest, pay entitlement, safety or fatigue recommendation. All intervals are half-open [start,end); every demand, shift and break boundary is evaluated.

Arithmetic limits

Enter named JSON scenarios. demand: role/start/end/people. shifts: id (optional)/role/start/end/people/paidBreak/breaks; each break has start/end. All times require YYYY-MM-DDTHH:mm:ss±HH:mm or Z; overnight shifts require the next date. Identified people have people=1 and cannot overlap. Overlapping demand rows add together. paidBreak=true pays break time but removes coverage. Up to 20 scenarios, 100 demand and shift rows each, 20 breaks per shift and 50,000 coverage rows in total. Years 1900–2200; fixed offsets only, no daylight-saving rules.

GOOD TO KNOW

Common questions

Can this approve staffing?

No. The report only compares the entered demand and roster.

Are breaks available coverage?

No. Paid and unpaid breaks both remove coverage.

Can I export every scenario?

Yes. Copy and TXT use the same full successful snapshot.