Overview

to
runs to 5 min, stops when settled

Duty board

click a name for their detail
These compete with each other: pushing one up will cost you somewhere else. They are calibrated so that the same setting means roughly the same amount of effort whichever row it is on. The blue box shows what each one actually achieved in the last solve, so you can push a slider and watch that number move.
Removing a slot also clears any endorsement requirements set against it on the Rules page.
A slot whose end is at or before its start runs past midnight, and rest between duties is computed from these hours. For an on-call slot the hours describe the span the person could be called into, not a shift they work, so rest either side is not enforced and those hours do not count towards the weekly ceiling.
These become the toggles on each person, and the things a duty slot can demand. Removing one clears it from everybody.

Endorsements needed on each duty slot

each is a position that must be manned
Leave a cell empty for no requirement. Each of these is a position somebody has to man, and nobody can man two at once, so asking for one ADC and one PAR means two different people even if one of them holds both endorsements. ATCO/Shift IC is the exception: it is held alongside a position rather than instead of one, so it does not need a body of its own. These are hard requirements — if a date cannot field enough people the pre-flight says so and names the slot.
Absolute. If they cannot all hold you get INFEASIBLE rather than a roster that quietly breaks one. A box left empty switches that rule off for that cadre.
Leave and courses are inputs. Format 2026-09-14..2026-09-18:Lve, one per line.
A setup is everything on the Duty slots, Endorsements, Rules, Priorities and People pages, plus the dates. Loading one replaces what is on screen and makes it the live configuration, so the command line uses it too. Each is a plain YAML file in data/setups, so you can also run one directly with --rules. Rosters you solve are not stored here — use Download CSV for those.
A saved roster is the solved duty board and its headline numbers, kept exactly as it came out. View opens it read-only without disturbing what you are working on. Load puts it back on the page along with the setup that produced it. Setups live separately, on the Setups page.