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

# The Duty Plan lifecycle

> The stages every PlanMyRounds Duty Plan moves through, from setting up doctors and shifts to publishing and handling changes afterward.

Every Duty Plan, whether you build it by hand or Auto Duty builds it for you, moves through the same stages. This page is the map — use it to see where a specific question fits before you go looking for the answer.

## The stages

**1. Configure doctors**

Add doctors and keep their [profiles](https://www.planmyrounds.com/docs/team/doctor-profiles.md) current — department, seniority, hour limits, excluded shift types. The engine reads this on every generation.

**2. Configure shifts**

Define [Shift Requirements](https://www.planmyrounds.com/docs/shifts/overview.md) (individual shifts) and, optionally, combine them into a reusable [Shift Schedule](https://www.planmyrounds.com/docs/shifts/shift-schedules.md).

**3. Configure requirements and rules**

Set staffing requirements per shift and the work, rest, and fairness rules the engine must respect. See [Roster constraints](https://www.planmyrounds.com/docs/rosters/roster-constraints.md).

**4. Create a Duty Plan**

Open the [creation wizard](https://www.planmyrounds.com/docs/rosters/creating-a-roster.md) and set the dates, shifts, team, and rules for this period. Or let [Auto Duty](https://www.planmyrounds.com/docs/auto-duty-planning/overview.md) do this on a schedule.

**5. Collect availability and leave**

Doctors submit [availability, leave, and shifts to avoid](https://www.planmyrounds.com/docs/leave/overview.md) for the period. Only **Approved** leave is treated as a hard block.

**6. Generate**

The engine solves the roster against the current doctors, shifts, and rules. This is when [approved leave, excluded shifts, and every constraint](https://www.planmyrounds.com/docs/scheduling-engine.md) are actually applied — a **Draft** roster comes out, or a **Failed** status if no valid schedule exists.

**7. Review**

Check coverage, workload, and flagged conflicts on the Draft before anyone else sees it.

**8. Publish**

The roster becomes visible to your team, with a shareable public link. See [What happens after publishing](https://www.planmyrounds.com/docs/rosters/publishing-a-roster.md).

**9. Edit, swap, or handle changes**

Real life happens after publish: [manual edits](https://www.planmyrounds.com/docs/rosters/editing-a-published-roster.md) for admin exceptions, [duty swaps](https://www.planmyrounds.com/docs/swaps/overview.md) for doctor-to-doctor changes.

## What can still change, and when

The engine reads doctor profiles, shift definitions, and approved leave **fresh on every generation** — it doesn't watch for changes in between. That has one important consequence:

> [!WARNING]
>
> Editing a doctor profile, a Shift Requirement, a Shift Schedule, or approving leave does not change a Duty Plan that has **already been generated**. The edit is picked up the next time that Duty Plan is generated or regenerated (for example, via [Retry](https://www.planmyrounds.com/docs/rosters/retrying-a-failed-roster.md)) — not retroactively.

For example: if you approve a leave request *after* a roster is already published, the roster is not automatically updated. You'll need to [edit it manually](https://www.planmyrounds.com/docs/rosters/editing-a-published-roster.md) or regenerate. See [Approving leave](https://www.planmyrounds.com/docs/leave/approval-workflow.md#approve-a-request).

If you're not sure whether a specific change reached a specific Duty Plan, open that Duty Plan and check it directly, rather than assuming.

## Next steps

> **[Create your first Duty Plan](https://www.planmyrounds.com/docs/rosters/creating-a-roster.md)**
>
> Walk through the four-step wizard.

> **[Automate it](https://www.planmyrounds.com/docs/auto-duty-planning/overview.md)**
>
> Let Auto Duty run this lifecycle on a repeating schedule.

> **[PlanMyRounds terminology](https://www.planmyrounds.com/docs/terminology.md)**
>
> Look up any term used on this page.

> **[Duty Plan generation failed](https://www.planmyrounds.com/docs/troubleshooting/duty-plan-generation-failed.md)**
>
> What to check when the Generate step doesn't produce a valid schedule.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.