ACGME

A Chief Resident's Guide to Block Scheduling

A practical build order for residency block schedules: the X+Y model, why ACGME constraints stack across rolling windows, and where schedules quietly break.

July 1, 2026 · 9 min read

Building a residency block schedule is a different problem from building an attending call schedule. You're not just distributing shifts fairly - you're sequencing a training program: inpatient rotations, clinic weeks, electives, and required experiences, all while keeping every single resident within duty-hour limits at every point in the year. This is a practical starting guide for a new chief resident handed the block schedule for the first time.

Understand the X+Y model, if your program uses one

Many internal medicine and family medicine residencies (though not all) structure the year as X+Y blocks: X weeks of inpatient service followed by Y weeks of outpatient clinic, repeating through the year. A common pattern is 4+1 (four inpatient weeks, one clinic week) or 6+2. The appeal is separation of concerns - a resident on an inpatient block isn't also trying to run a clinic panel, and clinic weeks give continuity-of-care experience without inpatient duty-hour pressure competing for the same hours. If your program uses X+Y, your first job as chief isn't building shifts from scratch - it's correctly sequencing which resident is in which phase of the cycle at any given time, so inpatient services always have adequate coverage across the PGY levels.

The constraints stack, and they interact

The hard part of block scheduling isn't any single ACGME requirement in isolation - it's that they apply simultaneously, at every point in the year, for every resident. A block schedule that looks fine week to week can still produce a rolling four-week window where someone's average creeps over 80 hours (§6.20.), or a stretch where in-house call happens more often than every third night (§6.27.), even though no single week looks like a violation on its own. Build (or use software that builds) the schedule checking rolling windows explicitly, not just the current week in isolation.

A practical build order

  1. Lock required rotations first - ICU months, required subspecialty blocks, and anything with an external scheduling dependency (another department's rotation, for instance) go on the calendar before anything else, since they're the least flexible.
  2. Sequence PGY-level coverage for required services - make sure every inpatient service that needs a senior resident has one at every point in the year, and that junior residents always have appropriate supervision available per your program's structure.
  3. Fill in X+Y or elective cycles around the fixed points - once required rotations are locked, the remaining blocks (electives, additional clinic time) fill the gaps.
  4. Run the duty-hour check across the full year, not block by block - check every resident's rolling four-week average, every in-house call frequency, every 14-hours-free-after-call gap, across the entire built schedule before publishing any of it.
  5. Build in slack for the predictable disruptions - parental leave, planned time off for board exams, and illness all happen every year; a schedule with zero slack turns the first sick resident into a scramble.

Common places block schedules quietly break duty-hour rules

  • A resident finishing a heavy inpatient block and starting a new rotation the same week - the new rotation's first few days can inherit hours from the tail end of the old block if the rolling four-week window isn't checked across the transition.
  • Night float transitioning into day rotations without enough buffer - flipping from nights to days needs real recovery time built in, not just a calendar boundary.
  • Moonlighting hours not being tracked in the same system as scheduled clinical hours - since all moonlighting counts toward the 80-hour cap (§6.25.), any moonlighting that lives in a separate, untracked system can push a resident over the limit invisibly.

Check any specific week's numbers against every checkable ACGME duty-hour rule, with section citations.

Try the ACGME duty-hour checker

See common block patterns and pain points for internal medicine residency programs.

Internal medicine residency scheduling guide

What to hand off to the next chief

The single most useful thing you can leave behind isn't the finished schedule - it's the constraint list that produced it: which rotations are truly fixed, which duty-hour edge cases bit you this year, and where the slack lived. A block schedule that only exists as a finished grid, with no record of the reasoning behind it, forces the next chief to rediscover every constraint from scratch.

Common questions

Does the X+Y model help with duty-hour compliance?

It can, indirectly - separating inpatient and outpatient responsibilities makes each phase easier to reason about independently. But it doesn't remove the need to check rolling four-week averages across the transitions between X and Y blocks, which is exactly where problems tend to hide.

How far in advance should a full year's block schedule be built?

As early in the preceding year as your program's rotation commitments allow - many programs finalize the coming academic year's blocks several months ahead, since residents need to plan around board exams, interviews, and personal commitments well in advance.

Build this month's schedule in RotaBay

Free for one team, no card to start. Set your shifts and rules and generate a fair schedule in minutes.