> ## 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.

# Why wasn't a doctor assigned?

> A step-by-step diagnostic for why a specific doctor is missing from a generated Duty Plan or was given fewer duties than expected.

Work through these checks in order — each one rules out a specific reason the engine wouldn't assign the doctor.

<Steps>
  <Step title="Is the doctor Active?">
    Only **Active** doctors are eligible for scheduling. Check the doctor's status on their [profile](/docs/team/doctor-profiles#active-vs-inactive). A doctor becomes Inactive automatically if their linked member account is deactivated.
  </Step>

  <Step title="Was the doctor included in this Duty Plan?">
    Team selection happens per roster. Open the roster and confirm the doctor was part of the team chosen in [the wizard's team-selection step](/docs/rosters/creating-a-roster) — or, for Auto Duty, that they matched the department/pod/location scope on the cycle.
  </Step>

  <Step title="Is the doctor on approved leave for these dates?">
    [Approved leave](/docs/leave/overview) is a hard constraint — the engine will never assign a doctor to a shift on a date they have approved leave for. Check the doctor's leave history for the period.
  </Step>

  <Step title="Does the doctor have restrictions that rule out this shift?">
    Check their profile for [excluded shift types](/docs/team/doctor-profiles) (a permanent restriction) and any [shifts to avoid](/docs/leave/applying-for-leave#mark-shifts-to-avoid) (a soft preference the engine tries to honour, but may override).
  </Step>

  <Step title="Would assigning them break a rest or work-pattern rule?">
    Max consecutive work days, minimum rest days per week, and minimum rest hours between shifts apply per doctor. If assigning them to this shift would breach one, the engine skips them for it. See [Roster constraints](/docs/rosters/roster-constraints#work-and-rest-rules).
  </Step>

  <Step title="Are they outside their min/max hours for the month?">
    Min and max hours per month are soft constraints. If the doctor is already at or near their max, the engine may prefer other doctors for additional shifts.
  </Step>

  <Step title="Is this a seniority-ratio issue?">
    If the shift needs a minimum number of seniors and that's already been met by other doctors, a junior doctor may be assigned instead — or vice versa, if the ratio still needs filling. See [Senior-to-junior ratio](/docs/rosters/roster-constraints#senior-to-junior-ratio).
  </Step>
</Steps>

<Tip>
  "Shift to avoid" is a preference, not a restriction. PlanMyRounds tries to avoid assigning the doctor to that shift, but may still assign it if there's no other way to produce a valid schedule. If a doctor keeps getting a shift they marked to avoid, that usually means the team is too small or too constrained to honour every preference — see [Duty Plan generation failed](/docs/troubleshooting/duty-plan-generation-failed).
</Tip>

## Next steps

<CardGroup cols={2}>
  <Card title="Update the doctor's profile" icon="id-card" href="/docs/team/doctor-profiles">
    Fix the field that's actually causing the exclusion.
  </Card>

  <Card title="Scheduling engine reference" icon="microchip" href="/docs/scheduling-engine">
    The full list of parameters the engine reads for every doctor.
  </Card>
</CardGroup>
