Chasing 412 clients by email, from three offices
Sixty staff, three offices and three versions of the same deadline spreadsheet. Records were chased from personal inboxes, so nobody could say what had been asked for.
- Client
- A three-office accountancy practice
- Sector
- Professional services
- Duration
- 13 weeks
- Year
- 2025

Overdue jobs
- Before
- ~34
- Now
- ~9
Time spent chasing
- Before
- ~11 hrs / week
- Now
- ~2 hrs / week
Deadline tracking
- Before
- 3 spreadsheets
- Now
- 1 board
Who a job is waiting on
- Before
- Not recorded
- Now
- On every job
The problem
The practice ran 412 clients out of three offices with about sixty staff. Statutory dates sat in a spreadsheet, and each office had drifted into keeping its own copy.
Records were chased by email from personal inboxes. If a manager was away, nobody could tell whether a document had been requested, when, or whether the client had already sent it. The practice management system held the client list and the fee, and nothing about the state of the work.
Partners knew roughly how many jobs were late. They could not say which ones were late because of the practice.
What we found
We traced thirty overdue jobs back through the email trail. Nineteen of them were waiting on the client, and had been for weeks.
The practice was absorbing the blame for all thirty, because it had no record to point at.
We also found the same document being requested twice by two different people, which is the kind of thing a client remembers at renewal.
How we got there
Thirteen weeks. The board for the partners was the simple part. The screen for the client took three attempts, and the difficult conversations were about what staff would see of each other's work.
When the official dates disagreed
On the first morning the dates came in from Companies House and HMRC, some of them matched none of the three spreadsheets. Each mismatch went to the manager for that client with both dates side by side. Most were a spreadsheet nobody had updated after a change of year end. Nothing was overwritten until a person had looked at it.
A request belongs to the client
Before anyone asks a client for a document, they see what has already been asked for, who asked, when, and whether it has arrived. That was in the first version, because asking twice was the first thing the practice wanted stopped.
The client screen, three times
The first version showed a client everything the practice held on them, and clients opened it once. The second was a list of what was outstanding and read like a demand. The one in use shows three things at most, in plain words, each with the reason it is needed. We tested it the way a client uses it, by photographing a bank statement with a phone.
Whose late jobs are on the board
Managers were wary of a board where the other two offices could see their overdue jobs. What settled it was the column showing who each job is waiting on. Once most of the late ones showed as waiting on the client, the board stopped looking like a league table and became the record they had been missing.
What we built
Filing dates from Companies House and HMRC
Filing dates pulled from Companies House and HMRC each morning rather than typed in, so a spreadsheet that has fallen behind is no longer possible.
One board, three offices
The three spreadsheets became one view that partners can filter by office, owner or obligation.


A portal the client will actually open
Three things to do, written plainly, with the reason attached. We spent longer on this screen than on anything else in the build, because a portal nobody opens is worse than an email.

Every request on the record
Each ask is logged against the client with who made it and when. A manager on holiday no longer takes the history with them.
Afterwards
The first number to move was not one we were asked about. Clients stopped being asked twice for the same document, and two partners raised it unprompted in the first review.
The overdue figure took longer. It settled at around nine after two quarters, and the partners are candid that most of the remaining nine are the same handful of clients every time.
Built with
- TypeScript
- React
- Next.js
- PostgreSQL
- Prisma
- Auth.js
- Companies House API
- HMRC Making Tax Digital API
- S3 document vault
- Resend
Services used
More case studies
Is this your problem too?
If any of the above sounded familiar, describe your version of it. The first conversation is about whether software is the right answer at all.
From £10,000Most projects land between £15,000 and £55,000.