> ## Documentation Index
> Fetch the complete documentation index at: https://www.planmyrounds.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How coverage requirements work

> Coverage requirements set the minimum headcount and seniority mix PlanMyRounds must staff on every shift — here's where they're set and how the engine treats them.

A coverage requirement is the minimum staffing PlanMyRounds must hit on a shift. It's made of two numbers, both **hard constraints**: if the engine can't meet them, generation fails rather than publishing a short-staffed schedule.

## The two numbers

<CardGroup cols={2}>
  <Card title="Required doctors" icon="user-group">
    The total headcount needed to cover the shift each time it occurs.
  </Card>

  <Card title="Min seniors required" icon="star">
    How many of those doctors must be senior, out of the total required.
  </Card>
</CardGroup>

## Where it's set

Both numbers are defined once, on the [Shift Requirement](/docs/shifts/overview) itself, not per roster. Every [Shift Schedule](/docs/shifts/shift-schedules) and Duty Plan that uses that shift inherits the same staffing requirement — you don't set it again when building a roster.

<Note>
  Changing a Shift Requirement's staffing numbers only affects Duty Plans generated afterward. See [What changes when you edit something](/docs/what-changes-when-you-edit-something).
</Note>

## How the engine treats it

Coverage requirements sit near the top of the engine's [priority order](/docs/scheduling-engine#constraint-priority-order): after no-overlap and approved-leave blocks, minimum staffing and minimum senior staffing are checked before any work-pattern or fairness rule. If your team can't meet a shift's coverage requirement across the full period, generation fails — see [Duty Plan generation failed](/docs/troubleshooting/duty-plan-generation-failed).

The [wizard's team-selection step](/docs/rosters/creating-a-roster) runs a live coverage check as you pick doctors, so you can catch a shortfall before you even generate.

## Next steps

<CardGroup cols={2}>
  <Card title="Create a shift" icon="plus" href="/docs/shifts/creating-shifts">
    Set required doctors and minimum seniors on a Shift Requirement.
  </Card>

  <Card title="Duty Plan generation failed" icon="rotate" href="/docs/troubleshooting/duty-plan-generation-failed">
    What to check when coverage can't be met.
  </Card>
</CardGroup>
