Skip to main content
This step captures how the schedule should behave. You write rules in plain language and the system uses them to constrain the assignments. There are three kinds of rules: coverage, mandates, and behavior rules.

Coverage

For each block you defined in the previous step, write a short note describing how many people must be on at any time, and any conditions. Examples:
  • “Wards: minimum 4 residents at all times. PGY1 and PGY2 only.”
  • “Night float: 1 resident, PGY2 to PGY4.”
You’ll see one text box per block.

Mandates

Mandates are minimums per person. For each block, set how many times each person must be assigned to it across the schedule. Examples:
  • “Every PGY1 does Wards at least 3 times.”
  • “Every senior resident does at least 2 night float blocks.”
The wizard shows this as a table where you fill in the number per role per block.
Screenshot to add: the mandate table showing rows per block and inputs per role.

Behavior rules

Behavior rules cover everything else: patterns the schedule should follow, things to avoid, fairness rules. You add them as cards. Each rule has a strict toggle:
  • Strict — the system treats it as a hard constraint and won’t break it. Use for rules that must always hold (e.g. “MICU must be scheduled in two consecutive blocks”).
  • Flexible — the system treats it as a soft preference and will try to honor it. Use for rules you’d like but can live without (e.g. “Avoid placing ICU immediately after a night float block”).
Screenshot to add: a rule card with the strict/flexible toggle visible.