The complete tour
Every feature, in depth
Six areas, no modules, no tiers. Everything on this page ships to every department, and everything shown is drawn from the product itself.
Requests & the window
Structured asking, honest answers
The free-text request column becomes five structured types: days off, morning preference, evening preference, chosen night dates, a protected weekend. Doctors submit from their phones; the scheduler reads one inbox instead of twenty threads.
New request
The window: opens on the 1st for the following month and soft-closes on the 15th. The scheduler can accept late submissions right up to publish.
Automatic chasing: doctors who have not submitted get reminded on the 10th, the 13th and the morning of the 15th. Nobody else gets nagged.
Dashboard countdown: every doctor sees the target month and days remaining the moment they sign in.
Withdraw and resubmit: pending requests can be withdrawn any time before the month generates.
Resolution with reasons: generation marks each request honored, partial or declined, and writes the why: still assigned on the 21st, 14 of 16 shifts on the preferred wave, and so on.
Scheduler override: acknowledge or decline any request by hand before generating, with a note the doctor sees.
Generation
The nine-stage engine
Frame, seniors, nights, med resident, leave blocks, base fill, weekends, D marks, validation. The same order of operations a careful scheduler follows, run in seconds, deterministic for a given seed.
Cycle anchors: tell it once that group B owned the week of June 1st and that one senior held SR call; every future month continues both rotations.
The 40-hour base: core doctors fill to five working days around approved leave, day-off requests and capability limits.
Reduced templates: weekends and public holidays thin to the department's skeleton; second-tier pods close or open as configured per post.
Equity-spread sessions: extra-pay shifts go to whoever the tallies say is owed relief, and the tallies carry over month to month.
Automatic D1 and D2: a sixth distinct working day in a week is marked D1, a seventh D2, exactly as the pay rules define them.
Reproducible drafts: the same inputs and seed produce the same rota, so a regenerate is a decision, not a gamble.
The scheduler's grid
Review, overrule, publish
The month lands on a grid in the workbook's own layout and colours. Everything is clickable and nothing is final until you say so.
Edit cell
Tue 11 · Assess2 8–16
Cell editor: assign anyone eligible, with inline warnings for overlaps, leave, night weeks, seniors on nights and capability.
Full notation: sessions, D1/D2, custom hours and split slots, the same marks the printed sheet has always carried.
Locks: manual and claimed cells carry a lock and survive regeneration; the dot in the grid shows you which decisions are yours.
Selective regenerate: change the seed or the inputs and rebuild everything that is not locked.
Publish: one action makes the month visible, emails the department and optionally attaches the export.
The report
Generation report · August 2026
Equity tallies
The review inbox
Fong · days off · Sept 7, 8
“Family commitment”
Barrett · night dates · Sept 14, 16, 18
The live month
Churn, handled
Publishing is the start, not the end. The month keeps moving and the system keeps up.
Absences: reported against a shift in ten seconds; the seat flags, the scheduler reopens it as a claimable session or reassigns it.
Give-ups: offer a shift back to the pool or hand it to a named colleague, subject to approval.
Swaps: propose, counterpart accepts, scheduler approves, both cells update atomically.
Open sessions: the light-blue seats sit on a board; the first eligible claim wins and the scheduler can revert.
Guards: capability and double-booking are checked at claim time, not discovered on the day.
The day board: who is on right now, by post and wave, with SR call and the admitting ward on top.
Morning
on nowAfternoon
Night
Spreadsheets
The workbook, both directions
Import the past, export the present. The printed sheet on the noticeboard never has to change.
587
cells
128
bold sessions
19
split slots
0
unmatched names
“Wiin”, “Pasons”, “Rampertsad” matched to Win, Parsons, Rampersad automatically. Nothing commits until you confirm.
Dry-run imports: see exactly what the parser read before anything commits; map or skip unmatched names.
Typo tolerance: Wiin, Pasons and Rampertsad resolve themselves; anything ambiguous waits for you.
Faithful exports: colours, bold sessions, D marks, splits, custom hours, the DL footer, all three sheets.
Communication & governance
Notified, logged, accountable
From Medrota · Mon 13 Jul, 9:00
Rota requests for August, due by the 15th
Hi Anneliese, you haven't submitted any requests for August yet. Days off, shift preferences, night dates and weekend-off requests close on the 15th.
Submit requestsEmail that lands: sign-in links, reminders, publish announcements and scheduler alerts, each one recorded in the send log.
Magic-link auth: no passwords to forget; links are single-use, hashed at rest and expire in 20 minutes.
Three roles: scheduler, doctor, sessional, enforced on the server on every page and action.
Staff flags: senior, med resident and assess-capable live on the staff page, editable as people are signed off.
Audit log: append-only record of every consequential action: edits, claims, trades, approvals, publishes, imports.
Versioned cells: two schedulers editing at once cannot silently overwrite each other.