Why we built RotaSync
· 6 min read
Every few weeks, a doctor sits down with a spreadsheet and copies their shifts into their phone one at a time. Row 47, column M. Then the rota changes — someone swaps a weekend, leave gets approved, a rotation shifts by a week — and the calendar they just built is quietly wrong. Nobody tells them. They find out when they turn up for a shift that moved, or miss one that didn't.
RotaSync exists to delete that job. You link the rota once; your shifts appear in the calendar you already use, and they stay right when the sheet changes underneath them.
That is a simple promise and a genuinely hard problem, and the reason is worth explaining — because it is also the reason nobody had solved it for you.
Nobody designed a rota to be read by software
A hospital rota is a spreadsheet a human made for other humans. It was built to be understood at a glance by people who already know the department, and that assumption is doing an enormous amount of work. The names are however that coordinator writes names. The shift codes are local vocabulary. The layout is whatever fitted on the page.
So there is no format to support. Dates run across the top on one rota and down the side on the next. Some put one person per column; some put one ward per column and the people in the cells. Some use a tab per month, some a tab per week, some one enormous grid with the year stacked vertically. A month can be written as a merged banner over a row of day numbers, with no date anywhere a computer would look.
Any of these is perfectly readable to the person it was written for. All of them have to be worked out from scratch by anything trying to read them automatically.
The details are where it actually gets hard
Layout is the easy half. The hard half is that a rota is written in shorthand, and shorthand is ambiguous.
Take a single letter in a cell. It might be a shift code, a person's initial, a marker meaning “off”, or a footnote. A day off is written as a word on one rota and as a single character on another — and the character chosen varies. Get that wrong in one direction and you put a “day off” banner on a day somebody worked; get it wrong in the other and you bill them for a rest day.
Or take on-call. Whether an on-call shift means you are in the hospital or at home changes the hours, the pay and whether the rota is compliant — and most rotas simply do not say which. The distinction is understood by everyone in the department and written down by nobody.
Some of it is funnier, and worse. Early on, a rota rostered day shifts on a ward whose name happens to contain the word “night”. The code matched on the letters, and every one of those day shifts became a night shift — the right hours, on the wrong side of the clock. The shift count never changed, so nothing looked broken. It was only found by checking the output against the sheet by hand.
There are a lot of those. Each one is a real person's calendar, and none of them announces itself.
Three things we decided not to do
We don't ask you to reformat your rota. The obvious shortcut is to publish a template and tell people to fill it in. It would have made this straightforward, and it would have made the product useless: you do not control your rota, and your rota coordinator is not going to change how they work because of an app you bought. So RotaSync reads the rota you actually have.
We don't send your rota to an AI model. We tested one against real rotas, twice. It made the results no better and occasionally worse — in one run it quietly replaced hours the sheet had stated with rounder-looking ones — and it did not give the same answer twice for the same file. So it is switched off, and reading a rota is done entirely by our own software. Your rota is never sent to an AI provider, so it cannot be retained or used to train anything.
We don't keep your rota. We hold the spreadsheet for a few minutes while we read your shifts out of it, then delete it. What we store is your own shifts — not the file, not your colleagues' shifts, not the roster. Your colleagues did not sign up for this, and a rota is full of them. The privacy policy is the long version.
Why the pay checks are in here too
Once software can read your rota accurately, it can do arithmetic on it — and the arithmetic is worth doing. It can tell you what your rota should pay, check it against the safe-working limits in the resident doctor contracts, and compare what you actually work with the work schedule your trust pays you on.
Tools for this already exist, and the BMA's are good. What they have in common is that you type your rota in by hand first. That is the step this removes: the rota is already parsed, so the check is something you have rather than something you spend an evening on. How the pay and compliance figures are worked out is written up in full, including what can make an estimate wrong.
Who this is for
RotaSync is built for doctors working in the NHS — resident doctors rotating every four to six months, registrars, consultants — because that is the rota problem we know and the one the pay and compliance features are specific to. It is not affiliated with, endorsed by or connected to the NHS.
The rota-reading half is not fussy about your job title, though. If your rota lives in a spreadsheet, it will probably read it, and nurses, AHPs and pharmacists use it too.
If it cannot read yours, we would genuinely like to know — tell us, and it becomes the next thing that gets fixed.