Nice Schedule ← Nice Schedule

Field notes

Anesthesia call schedule: how it actually gets built

Most people outside anesthesia think a call schedule is a rotation — names cycling through a calendar. The reality has more constraints than a junior software engineer’s first feature spec, and most groups still build it in Excel.

I’ve spent the last year building scheduling software for anesthesia groups. Before that, I would have guessed that “anesthesia call schedule” meant something like a 25-person rotation through nights and weekends, with vacation requests slotted in. That’s the cartoon version. The real version has at least six categories of rules, most of which interact, several of which the group itself has never written down.

This post walks through what actually goes into one. If you’re a doc trying to explain to a partner why the current schedule is unfair, an admin who’s inherited the job, or a vendor sizing the problem — this is the surface area.

What “call” means

Anesthesia groups cover two distinct things: daytime ORs (planned cases at hospitals and surgery centers) and after-hours coverage (emergencies, OB epidurals, trauma, add-ons). The after-hours piece is “call.”

A call shift is usually an overnight starting late afternoon and running until the next morning. A “weekend call” might be Friday evening through Monday morning, or split across two docs. Some groups break call into in-house (you sleep at the hospital) and home call (you respond from home if paged). Bigger groups split it further: first-call takes the page, second-call backs up if a second case lands.

The call schedule is the document that says who is responsible if the phone rings. Get it wrong and the patient who needs an emergency C-section at 2 a.m. has nobody to put them to sleep. So nobody gets it wrong — but they do spend a wild amount of time getting it right.

The six categories of constraint

1. Post-call rest

The doc who took call overnight cannot be assigned to an OR the next morning. That’s the floor. Most groups go further: after a weekend stretch, a doc gets two or three full days off before being eligible for the next call. Some groups codify exact gap rules — minimum three days between any two call assignments, four days after a weekend.

This is the constraint that turns a 30-doc group into something that feels like a 22-doc group during certain weeks. You can’t schedule everyone on Monday if half of them just came off weekend call.

2. Site coverage and headcount

Multi-site groups need a minimum number of docs at each site every day. Hospital A needs three, the cardiac site needs one with a cardiac-anesthesia certificate, the ambulatory surgery center needs one, the orthopedic specialty hospital needs one. The numbers shift by day of week — Wednesdays might need more coverage at the main hospital because that’s when the heavy cases run.

Plus: not every doc is qualified for every site. The cardiac certificate, the pediatric rotation, the new hire who hasn’t been credentialed at the third hospital yet. Eligibility is a table, not a flag.

3. Partner vs non-partner allocation

This was the constraint I didn’t see coming, and it’s the one most outsiders miss entirely. In partnership-structured groups, the partners (equity holders) and the employed docs have different call obligations — on purpose.

One common model: non-partners are hard-capped at a yearly call number (say 65 calls per year). Partners absorb whatever residual the schedule needs, prorated to their FTE share. If the group as a whole owes 1,800 call shifts per year and the non-partners eat 1,300 of them, the partners split the remaining 500 according to their ownership math. Partners can’t cap their calls the same way — that’s the deal of being a partner.

This asymmetry is invisible if you treat “fairness” as “everyone gets the same number.” They don’t. They get the number that matches their role in the partnership.

4. Weekend and holiday fairness

Weekdays are negotiable; weekends are a marriage. Docs care vastly more about how Saturdays distribute across the group than about how Tuesdays do. One doc getting two more Saturdays than everyone else over a year is the kind of thing that produces a meeting. Holidays — Thanksgiving, Christmas, New Year’s, July 4th — are tracked separately and rotated multi-year, so the doc who took Christmas Eve this year doesn’t take it next year.

Most groups track weekend counts and holiday counts as separate fairness columns alongside the total call count. Three columns, three different distributions to balance.

5. Vacation and PTO blocks

Vacation is a hard constraint that arrives through a different channel from everything else — usually email, sometimes a shared spreadsheet, occasionally a portal. Big groups carry 60–80 approved vacation days per doc per year. The schedule has to route around all of them.

The data quality on vacation requests is usually rough. A request might say “off the week of the 12th” without specifying Monday-to-Friday or Saturday-to-Saturday. Holidays embedded in requested weeks. Requests for “no call but I’ll still do daytime.” The admin’s job, before any scheduling math runs, is to normalize all of this into actual date ranges and request types.

6. Soft preferences

“Don’t put me on call the Tuesday before my kid’s birthday.” “I’d rather not work with Dr. X on weekends.” “I prefer not to be on call the night before my partner’s monthly clinic.” These aren’t enforceable rules — the schedule still has to cover the hospital — but they matter for retention, and a schedule that ignores them produces a steady drip of complaints.

Soft preferences should be honored when possible and quietly violated when the rest of the schedule has no other answer. The trick is the “quietly” part: docs accept being overridden if they can see why.

How most groups build this today

A 25-doc group I work with builds their schedule in Excel. One person owns it. She knows everyone’s post-call preferences, which docs are qualified at which sites, who’s a partner, who’s capped, who’s pregnant and shouldn’t take overnight call next month, and who got the short end of last month’s holiday rotation. She drafts a calendar in early-to-mid month for the following month, sends it out, fields complaints, redoes the math, sends v2, sometimes v3. The cycle takes about two weeks.

Vacation requests arrive in her inbox as free text. She reads each one, decides whether it’s a hard block or a preference, and types it into a side tab in the spreadsheet. Facilities email in their daily case-volume changes (“we’re short a room tomorrow, can you pull one”), and she updates the schedule in place. Most nights, she does one more pass before the next morning’s 6 a.m. handoff.

A note on the human

The admin doing this job is almost always extraordinary. She has the whole group’s rules and quirks in her head. The schedule isn’t bad because she’s bad — it’s bad because the constraints exceed what one person can hold in working memory while also responding to email all day.

What “good” looks like

I’ve come to think there are four things that separate a working call-scheduling process from a broken one:

  1. Constraints are encoded once. Post-call rules, partner allocation, eligibility tables, fairness weights — written down somewhere a computer can read, not re-derived from the admin’s memory each cycle.
  2. Fairness math is visible. Docs can see their own call counts, weekend counts, and holiday counts relative to the group, alongside their vacation requests granted vs requested. No “trust me” reports.
  3. Requests have a channel. Vacation requests, swaps, and preferences go through one place that everyone agrees on — not email, not a group text. The admin’s inbox should not be the system of record.
  4. The schedule is reproducible. Given the same inputs — same docs, same rules, same vacation requests — the same schedule comes out. If the answer changes when nothing else changed, somebody is making decisions ad-hoc.

Reproducibility is the one most groups don’t realize they’re missing. When the schedule looks different this month for reasons nobody can fully reconstruct, every doc who got a slightly worse month suspects bias. Reproducibility kills the suspicion.

Where this is heading

The reason the spreadsheet approach has held up this long is that anesthesia groups are small. Twenty to fifty docs is a problem you can run in your head, mostly, if you’ve been doing it for years. The reason it’s starting to break is that the constraint surface keeps growing — more sites added through hospital acquisitions, more sub-specialty certifications, more federal and state duty-hour rules, more docs negotiating part-time arrangements, more requests submitted from more channels.

The math underneath an anesthesia call schedule is a constraint-satisfaction problem with maybe 50 hard constraints and 200 soft ones, depending on the group. Modern solvers handle that easily. The hard part isn’t the math — it’s collecting the rules in a form the solver can read, and giving the admin a way to fix the result when reality breaks an assumption.