Rota, on-call & absence
Ealing Park Health Centre
Each day is rated on session cover. Every doctor contributes one point per AM and one per PM, so a half-day locum correctly fills half a doctor's gap. Sessions spent in meetings, tutorials, admin or student lectures don't count, because patients can't be seen. Up to 3 sessions short stays green (managed on the day). A day turns amber at 4 sessions short, red at 5 or more, and always red if the rostered on-call doctor isn't actually in. Tap a day to open it on the rota.
Day-by-day view of cover. Tap a day to open its ledger, or its status to see the day in the leave calendar.
| Date | Weekday | Sessions covered | Status | Why | On-call AM / PM | Who is off | Locum cover |
|---|
Who is off, per doctor. Entries are added on the Admin tab. · Open Avensure absence calendar ↗
Check shows the effect on the rota without changing anything. Request this leave checks it too, then prepares an email to the practice admin for approval. Nothing goes on the rota until the admin approves it.
A SystmOne-style view of one day, built from the roster, leave, on-call and teaching timetable. Shows what each session is being used for — clinical, on call, teaching, leave or a blocked commitment.
Find who could fill a gap, then alert them. Rooster checks the rota and leave, so only people who are free are listed. The first to book gets the session and goes on the rota; if it was on-call, on-call moves to them too.
Everything waiting for a decision, from Rooster and from Avensure, checked against the rota, against leave already approved, and against each other. Approve marks it approved in Rooster; it then waits for Avensure, the master record, and the GP is emailed once Avensure approves it too (or you press Confirm without Avensure). Reject changes nothing and tells the GP. Only admins see this page.
| Doctor | Dates | Type | Decision | Decided | Note |
|---|
Rooster reads the Avensure absence calendar every morning at 6.10am. Use this if you need it sooner — after approving a batch of leave, for example.
Drop in this week's rota export from SystmOne (.csv or .xlsx). Rooster checks it against what it holds and shows exactly what would change before anything is applied; the last update can be undone. Leave comes in from Avensure automatically every morning — use Refresh now above if you need it sooner.
Rota: one row per clinician per session with Date, Session (AM/PM) and Clinician, plus the Session name from SystmOne. “On Call” in the session name sets on-call; PCN, tutorial, admin, meeting and training sessions are treated as non-clinical. For each date in the file, the imported rota replaces the standard weekly pattern.
Leave: one row per absence with Clinician, Start date, End date, and ideally Session (Full day/AM/PM), Type and Status (Approved / Awaiting approval).
Column names are matched loosely (“Employee”, “Staff”, “From” and so on). If an export isn't recognised, paste its columns into the template.
The sessions imported for a week. Edit, add or remove sessions here for last-minute changes; leave, on-call swaps and one-off changes are made on their own tabs as usual.
| Date | Session | Clinician | Session name | Non-clinical | Actions |
|---|
How a name is written in SystmOne or Avensure, and who it is in Rooster. Filled in automatically when you choose during an import.
| As written in the export | Rooster name | Actions |
|---|
Not in use yet. When the practice starts using swaps, this is where a request is made and answered.
For a session you're rostered for. Rooster shows who is free; ask one or several — the first to accept gets it, and the others are told it's covered. Cover is one-way; a two-way swap means you take one of their sessions back. One session per request.
Requests you've been sent, or sent yourself. Open a request email in Rooster by pasting it here; Show on calendar highlights the date above.
When a colleague accepts a cover or swap, their email comes to you. Paste it here and press Apply swap — the first acceptance applied wins, the rota updates (on-call moves with the session), and Rooster prepares the confirmation and a “now covered” email for everyone else asked.
Rooster — rota, on-call and absence · version 1.3 (draft for review) · 5 October 2026
| Title | Rooster — rota, on-call and absence: standard operating procedure |
|---|---|
| Version | 1.3 (draft for review) |
| Date | 5 October 2026 |
| Owner | Dr Ned Tapley, GP Partner, Digital Lead and Digital Clinical Safety Officer |
| Approved by | Partners’ meeting — date to be recorded |
| Next review | 5 April 2027, or sooner if Rooster or the practice's processes change |
| Applies to | All GPs, GP trainees and locums at Ealing Park Health Centre, and the staff who manage the rota |
This procedure sets out how Ealing Park Health Centre uses Rooster to plan and check the clinical rota, on-call cover, leave and absence; how staff request leave and swap sessions; and how the practice fills gaps by offering sessions to colleagues. Its aim is that every working day has the clinical cover the practice expects, with on-call always staffed, and that changes are recorded consistently by everyone.
In scope: the GP rota and on-call cover; recording annual leave, study leave, meetings, unplanned absence and non-clinical sessions; the weekly check against SystmOne and the daily leave sync from Avensure; leave requests and decisions; swaps between colleagues; offering sessions to colleagues to fill gaps; student teaching; recurring commitments such as PCN meetings and tutorials; and the weekly on-call message.
Out of scope: reception and nursing rotas; appointment booking (which remains in SystmOne); locum booking through agencies; and leave entitlement, balances and HR absence records, which remain in Avensure until the practice formally decides otherwise (see section 9).
| Role | Responsibilities |
|---|---|
| Rota custodian (admin) | Runs the weekly SystmOne check; records absence; applies on-call changes and swaps; checks the Month view for amber and red days and resolves them, using cover alerts or locums; sends the weekly on-call message; invites new staff and removes leavers. Named in the practice's rota arrangements, with a named deputy (a second admin) for absence. |
| Approver (practice manager or delegated partner) | Decides leave requests using Rooster's cross-check against cover, approved leave and other requests. Requests made in Avensure are decided in Avensure. May be the same person as the custodian. |
| Clinicians (GPs, trainees, locums) | Check and request leave; arrange swaps for sessions they cannot work; respond promptly to swap requests and cover alerts; report absence to the custodian as early as possible. |
| Digital Clinical Safety Officer | Owns this SOP and the clinical safety assessment of Rooster; maintains the hazard log; reviews incidents involving rota or on-call gaps. |
| Tiers in Rooster | Admin — the custodian, approver and Digital Clinical Safety Officer: full access, including the Admin area. User — clinicians: view the rota, request their own leave, swap sessions, and book sessions offered to them. Accounts not linked to a doctor (for example reception) can view the rota only. |
| Partners | Approve this SOP; decide the expected cover for each weekday and the rates offered for extra sessions; decide on any move away from Avensure as the record of entitlement. |
| Term | Meaning |
|---|---|
| Session | A morning (AM, 08:00–13:00) or afternoon (PM, 13:00–18:30) of clinical work. A full day is two sessions. |
| Expected cover | The number of sessions the practice expects covered on each weekday, set on Admin → Settings. Each day is judged against it. |
| On-call | The GP holding urgent and duty work for a session, rostered by weekday on Admin → On-call. |
| SystmOne check | The weekly comparison of the SystmOne rota export with Rooster. It proposes changes; nothing is changed until the custodian applies them. |
| Avensure sync | Rooster reads the Avensure absence calendar every morning at 06:10, including requests not yet decided. |
| Awaiting approval | Leave that has been requested but not decided. Shown striped; it does not reduce cover. Colleagues cannot see other people's waiting requests. |
| Swap / cover | A colleague takes another's session one way (cover), or each takes one of the other's (two-way swap). |
| Cover alert | An offer of an extra session, sent by an admin to colleagues who are free, with times and rate. The first to book gets it. |
The Month view rates each working day, and the Day ledger shows the same colour at the top of each day:
| Rating | Meaning and action |
|---|---|
| OK (green) | All expected sessions covered and on-call staffed. No action. |
| Shortfall (amber) | 4 sessions short. Review; offer a session if needed (6.9). Up to 3 short is green: absorbed with extra on-the-day appointments and through the week. |
| Shortfall (red) | 5 or more sessions short, or on-call not covered. Must be resolved before the day. |
| Closed | Bank holiday or practice closure. |
On-call counts as uncovered if the rostered doctor is on leave, not working, teaching, in a non-clinical session, not yet in post, or if nobody is assigned — whatever the headcount. Each day states its reason. From the ledger, See cover options opens the people who could fill that day.
Clinician:
Approver: the Leave requests tab lists everything waiting, in two sections:
| Task | Where |
|---|---|
| Inviting staff, access (User or Admin), rota links, removing leavers; who has joined and uses Rooster | Admin → Users. Keep at least two admins so access is never lost. Remove a leaver on their last day. |
| Doctors, working patterns, start and end dates | Admin → Roster. Tick Cover / locum for temporary cover. |
| Expected cover per weekday; practice closures | Admin → Settings. Set expected cover explicitly rather than leaving it on automatic. |
| Leave entitlements and balances (copy of Avensure) | Admin → Entitlements |
| Staff feedback | Admin → Feedback. Mark each item dealt with. |
| Email sending (cover alerts, invites) | Supabase Edge Functions rooster-invite, rooster-join and rooster-notify, sending through Resend. After any change, confirm the “deployed” message and send a test alert. |
| Problem | Action |
|---|---|
| A SystmOne export is “not recognised” | Check it is the rota export with Staff, Type, Name, Start Time and Format columns, as .csv or .xlsx. |
| Leave looks approved in Rooster but was declined in Avensure, or leave counts twice | Run Old Avensure copies on Admin → Leave entries (6.3). |
| A request waiting in Avensure is missing from Rooster | Press Refresh now. If still missing, check that the Avensure calendar feed includes other people's waiting requests. |
| A cover alert email does not arrive | Check junk; mark it Not junk and add the sender as safe. Ask the NHSmail local administrator to trust rooster@roosterrota.co.uk. Rooster's bell alert still works. |
| NHSmail warns about the link | Expected for a new site; it clears once checked. The local administrator can allow roosterrota.co.uk. |
| A phone shows an old version | Tap Reload on the new-version bar, or close Rooster fully and reopen it. |
| Someone can't sign in | Use Forgotten your password? on the sign-in screen. If they never joined, press Resend next to their invite on Admin → Users. |
| A one-off change has no effect | Look for the red choose a block warning and re-pick the block. |
| Hazard | Controls |
|---|---|
| On-call session left uncovered | Red rating on the Month view and ledger; weekly check (6.2); on-call gaps offered first in Cover options (6.9); flagged in the weekly message. |
| Rota decisions made on out-of-date data | One live database shared by everyone; weekly SystmOne check (6.1); daily Avensure sync. |
| Overlapping leave approved by mistake | Cross-check grid of approved and waiting leave; confirmation before approving an overlapping request (6.7). |
| Leave shown wrongly (declined still showing, or counted twice) | Old Avensure copies clean-up (6.3); each piece of leave counted once. |
| A session offered twice, or booked by two people | One offer per session across devices; booking is first-come-first-served in the database (6.9). |
| Absence not reflected in the rota | Absence recorded as soon as reported (6.3). |
| Version | Date | Change | By |
|---|---|---|---|
| 1.0 | 22 September 2026 | First issue for review | Dr N Tapley |
| 1.1 | 22 September 2026 | User accounts and tiers, sign-in, profile and alert bell; notes on swap requests | Dr N Tapley |
| 1.2 | 30 September 2026 | Online version: invitations, passwords, one shared database, backups and continuity, chats, own-view switch; shared-folder and PIN steps removed | Dr N Tapley |
| 1.3 | 5 October 2026 | SystmOne check and daily Avensure sync replace the file update; leave requests from Rooster and Avensure with cross-check grid; cover alerts and booking (6.9); old-copies clean-up; online swaps; email troubleshooting; updated hazards | Dr N Tapley |
Staff confirm they have read and understood this procedure.
| Name | Role | Signature | Date |
|---|---|---|---|
Blank allowance means the practice default. Adjustment is for anything one-off — TOIL added, unpaid leave taken. Only Annual Leave and Study Leave count against allowances; meetings, admin time and sickness don't.
Goes to everyone with an account, or to one person. They see it on their Messages tab, with a count until they read it.
Admins see everything, including this Admin area. Users see the rota, request their own leave and cover, and respond to requests. Link each person to their name on the rota; people who aren't on it (reception, for example) can view the rota but not request leave or cover. Admins who are also on the rota can switch to their own view at the top of the screen.
| Name | Doctor on the roster | Tier | Group | Alerts | PIN | Actions |
|---|
Sign-in keeps casual users to their own tier on a shared computer. It isn't strong security: anyone with a copy of the Rooster file can read its data. PINs are stored scrambled, never as typed.
What colleagues have sent from the Feedback button. Mark each one dealt with once it's handled.
Loading…
Sessions a locum is booked for, day by day. These count towards cover and are marked on the month view. The SystmOne check adds them for you; add any others here.
One row per doctor. FULL / AM / PM / OFF.
| Name | Initials | Trainee | Cover / locum | Mon | Tue | Wed | Thu | Fri | Starts | Ends | Actions |
|---|
One row per absence. Same start and end date for a single day; a wider range for a period of leave.
| Name | Start date | End date | Session | Type | Awaiting approval | Notes | Actions |
|---|
Leave brought in from Avensure by file, before the daily sync started, has no Avensure reference, so the sync can never update or remove it. Where a copy duplicates leave the sync now manages, or Avensure no longer has the leave at all, it can hide a decline or make a request look approved. This check finds those rows. Hand-entered leave is left alone.
A WhatsApp-ready snapshot of who is on call each AM and PM. It rebuilds automatically whenever you change the roster, on-call rota or record leave/sickness — so if someone goes off sick mid-week, log it on the Leave tab and this updates itself. Use Refresh if you want to force a rebuild.
Edit the text directly if you want to add a note before sending — Copy takes whatever is in the box. Changing any data elsewhere rebuilds it.
One AM (08:00-13:00) and one PM (13:00-18:30) doctor per weekday. It can repeat every week, or alternate over 2 weeks (Week 1, Week 2, Week 1… counted from the Monday you set).
| Weekday | AM on-call | PM on-call |
|---|
One-off swaps. Takes priority over the default for that date only. Shown a month at a time.
| Date | AM on-call | PM on-call | Actions |
|---|
Standing commitments that repeat — meetings, tutorials, portfolio reviews. These sessions don't count towards cover: the doctor may be in the building but can't see patients, so the day's rating drops accordingly. "When" controls which occurrence: first, second, third or last of the month, every week, every week except the first, or every other week — for that, pick a date it happens and it repeats fortnightly from there.
| Label | Doctor | Weekday | Session | When | Colour tag | Notes | Actions |
|---|
Change a recurring block for a single date without touching the standing rule — skip it that day, or hand it to someone else. A ⚠ means that block doesn't fall on the date chosen.
| Date | Recurring block | Change | Hand to | Note | Actions |
|---|
Term 1 master timetable. On a teaching day the AM clinic GP sees 6 patients (20 min each, plus a 10 min debrief with the students sitting in), and the PM lecture GP gives the lecture instead of a clinic. Leave AM or PM blank and that doctor stays on normal duties.
| Date | Location | Theme | Pair | AM clinic GP | PM lecture GP | Notes | Actions |
|---|
How Rooster is being used, week by week: who's using it, on what, and which parts. Totals only — no one's activity is shown to admins.
Open this tab to load.
Who works which days in a usual week, and who is usually on call. Leave, swaps and one-off changes are on the Rota.
The day’s appointment ledger with a recommended Rapid Health slot mix for each clinician, from the live rota (who’s in, on call, leave, meetings and teaching) and typical demand from the Rapid Health export. Advisory only — slots are still set in SystmOne.
Every addition, edit and removal in Rooster: who made it and when. Use Undo to put back the most recent change to an entry. Only admins see this.
Open this tab to load.
Sessions each doctor is on call, teaching, or on normal duties, for one calendar month. A session is one AM or one PM — a full day counts as two.
Where leave requests are sent, and shift booking.
The passcode keeps casual users out of Admin on a shared computer. It is not strong security: anyone with a copy of the Rooster file can read its data.
Half-day sessions you expect covered on each weekday (AM and PM counted separately, locums excluded). This is what each day is judged against. Set these explicitly — left blank they follow the roster, so a permanent change to someone's hours would quietly lower the bar instead of showing a shortfall.
| Weekday | Sessions expected | Currently rostered |
|---|
Bank holidays and other full closures. Shown as CLOSED rather than a false shortfall.
| Date | Notes | Actions |
|---|
Quick answers for using Rooster. Search above, or look below.
A guide to every admin task, with pictures from Rooster (made-up names). Search above, or open a topic. Topics marked computer use Admin tabs that only show on a computer.















