- Applies
- when someone asks to exchange a shift
- Enforcement
- Hard: never broken
- Who sets it
- Fixed in the product
- Family
- Data integrity
- Roster style
- published baseline (shift exchange)
verifiedCompiled from the product source on 12 September 2026
Rule catalogue · Data integrity
Breaking it exchanges two blocks of different length or different dates, so one side of the roster ends up short.
verifiedCompiled from the product source on 12 September 2026
Not every rule is about people. This family holds the structural invariants: an assignment cannot exist in two places at once, history cannot be rewritten, a swap has to be aligned on both sides. They are mostly fixed in code rather than configurable, because they are not policy choices. They are the difference between a roster and a spreadsheet that looks like one.