For residency programme directors and chief residents
Resident scheduling software that understands averaging
Resident scheduling software builds the rotation and call schedule for a residency programme while enforcing ACGME duty-hour limits: eighty hours averaged over four weeks, one day in seven free averaged over four weeks, and a maximum continuous duty period. A weekly hours cap cannot express any of these, which is why generic schedulers fail here.
From $99/month per location · No sales call · No card to start
At a glance
- ACGME limits clinical and educational work to 80 hours per week AVERAGED OVER FOUR WEEKS, not a weekly cap.
- A 96-hour week is compliant if the surrounding weeks bring the average under 80. Residency rotations are routinely built this way.
- A tool that checks each week in isolation will both reject legal schedules and pass a four-week block that breaches the average. The second of those is a finding.
- The 1-in-7-free requirement is averaged the same way, and the maximum continuous duty period is 24 hours plus up to 4 for transitions of care.
- MedAligna models the averaging window directly. $99–$249 per location per month, published, with a 14-day trial.
Is the 80-hour rule a cap or an average?
Eighty hours is an average, not a cap. This single sentence is why a general-purpose scheduler cannot schedule residents, and why most people do not realise it until a review.
It is an average: ACGME limits clinical and educational work to eighty hours per week averaged over four weeks. A ninety-six-hour week is entirely compliant if the surrounding weeks bring the average back under, and residency rotations are routinely built exactly that way. A tool that enforces a flat weekly cap will reject a perfectly legal schedule, which is annoying. Far worse: a tool that checks each week in isolation will happily pass a four-week block that breaches the average, which is a finding.
MedAligna models the averaging window itself. Set the window to four weeks and the cap to eighty, and the engine evaluates the block the way the requirement is actually written. The one-day-in-seven-free rule is averaged the same way, and the maximum continuous duty period, twenty-four hours plus up to four for transitions of care, is enforced as a shift-length limit rather than left to somebody's judgement at three in the morning.
How does a chief resident build a block around exams, weddings and holidays?
The programme runs on people, not on abstractions. A chief resident building next block's call is doing it around exams, weddings, and the fact that Priya covered the last two holidays.
With the residents' own stated availability and preferences, and time-off requests that carry the balance. Fairness counters track nights, weekends, holidays and call per person over the block, including who worked the last occurrence of each holiday, so the rota can be balanced against reality rather than against whoever complained most recently.
Swaps are rule-checked before they are offered: the engine will not surface a trade that would put a counterparty over the averaged limit, so a chief is never approving something that a review would later flag.
How does a programme start without procurement?
The alternative is a spreadsheet and a piece of software from 1998. Most programmes run on Amion, or on a spreadsheet, or on both, and both of them will let you build a non-compliant block without a word of complaint.
It starts on a card, because MedAligna is self-serve and published-price. A programme imports its residents, sets the ACGME preset, and publishes next block's schedule the same afternoon: no procurement, no implementation, no sales call.
The schedule publishes to each resident's phone, and what they open is always the current version rather than the version attached to last week's email.
Which blocks does ACGME averaging actually change?
The front-loaded rotation
A block puts a resident at 96 hours in week one and 60 in each of the next three. Entirely compliant on the four-week average. A weekly-cap tool rejects it and the chief resident overrides the tool, which is how tools stop being used.
MedAligna evaluates the four-week block as written. The schedule passes, because it is legal.
The block that quietly breaches
Four weeks of 84 hours. Every individual week is under an 80-hour weekly cap? No. But a tool checking a rolling seven days, or one that resets on a calendar week, can easily pass a block whose average is 84.
The averaging window is the unit of evaluation, so a 336-hour block against a 320-hour limit is flagged as what it is.
The swap nobody checked
Two residents trade call. Individually each looks fine. Together they put one of them over the averaged limit, and nobody finds out until the review.
The engine rule-checks the counterparty against the averaged limits before the trade is even offered, so a chief resident never approves something a review would flag.
How to choose resident scheduling software
Eight questions worth asking any vendor in this category, including us. At least one of them is a question we do not answer well, and we have said so rather than leaving it out.
01Does it model an averaging window, or a weekly cap?
This is the only question that matters, and most vendors will answer it wrongly with total confidence. Ask them to show you a compliant 96-hour week.
Where MedAligna lands: Averaging windows are configured directly: 80 hours over four weeks is expressed as 80 over four weeks. A compliant front-loaded rotation passes; a non-compliant block is flagged.
02Is the 1-in-7 rule averaged too?
It is. One day free in seven, averaged over four weeks, which means a week without a day off can be legal if the block balances. A tool that enforces it weekly is wrong in the same way, in the other direction.
Where MedAligna lands: Averaged over the same window, and configurable.
03Does it enforce maximum continuous duty?
24 hours plus up to 4 for transitions of care. A 30-hour shift is not a judgement call at 3am; it is a limit.
Where MedAligna lands: Enforced as a maximum shift length, so a 26-hour call is allowed and a 30-hour one is refused.
04Are swaps checked against the averaged limits?
If they are not, every trade is a potential breach that nobody catches until the review.
Where MedAligna lands: Checked before the trade is offered, so nothing reaches a chief resident that would have to be undone.
05Does it produce the reporting your review will ask for?
Programmes are asked to evidence duty-hour compliance. Reconstructing it afterwards from a spreadsheet is exactly the exercise you are trying to avoid.
Where MedAligna lands: Hours per resident over any window, with the averaging applied, exportable. If your institution requires a specific reporting format, tell us and we will tell you honestly whether we produce it.
What is an averaging window, 1-in-7, or 24+4?
- ACGME
- The Accreditation Council for Graduate Medical Education, which sets the duty-hour requirements US residency programmes are accredited against.
- 80-hour rule
- Clinical and educational work limited to 80 hours per week, averaged over a four-week period. The averaging is the entire point: a 96-hour week can be compliant, and a run of 84-hour weeks is not.
- Averaging window
- The period over which an hours limit is averaged: four weeks for ACGME. A scheduling tool that cannot express one cannot schedule residents correctly, in either direction.
- 1-in-7
- One day free of clinical and educational work in seven, averaged over four weeks. Averaged, not absolute, which is what makes it hard for generic tools.
- 24+4
- The maximum continuous duty period: up to 24 hours of clinical work, plus up to 4 additional hours for transitions of care and educational activities.
- Night float
- A rotation where residents cover nights for an extended stretch, used to distribute night work and stay within duty-hour limits. It interacts with the averaging window in ways that a weekly cap cannot represent.
Questions people actually ask
- Does it enforce ACGME duty hours?
- Yes, as they are actually written. Eighty hours per week averaged over four weeks, one day in seven free averaged over four weeks, and a maximum continuous duty period of 24 hours plus up to 4 for transitions of care. A weekly cap cannot express any of these: it both rejects compliant schedules and passes non-compliant blocks.
- Why can't we just use a normal scheduling tool?
- Because the eighty-hour limit is an average over four weeks, not a weekly ceiling. A generic tool checking each week in isolation will pass a four-week block that breaches the average, which is exactly the finding a review produces. MedAligna evaluates the averaging window itself.
- Can residents swap call?
- Yes, and the engine rule-checks the counterparty first against the averaged limits, so a chief resident is never approving a swap that a review would flag.
- Does it replace Amion?
- It covers the same job (call schedules and a who's-on-call board) with the rules Amion has no concept of, on a modern phone app, at published prices. Import your existing schedule and see.
- Who sets up the ACGME rules?
- Nobody has to hand-build them: the averaging window, the 1-in-7 requirement and the 24+4 continuous-duty limit ship as a preset you switch on, and the numbers are editable if your programme is held to something tighter. The rest is a chief resident's afternoon: import the residents from a CSV, name the rotations and services, publish. There is no implementation project and no sales call before you can use it, and pricing starts at $99 per location per month with a 14-day trial.
Related
Build a block that passes review
ACGME averaging, 1-in-7, and 24+4 enforced as written. Publish next block this afternoon.


