10 July 2026
Case StudyTimesheets and bills, finally in the same place

Bringing an audit firm's timesheets and bills together used to take over a week, so pricing decisions ran on quarter-old numbers. Hourly rates, work breakdown and incomplete days now sit on one dashboard.
The first system we ever built for a client is still running today, two years later. It is the internal timesheet app of a professional services firm that runs client engagements across audit, payroll and several other services. It never made a press release, and it quietly taught us most of what we now believe about this kind of work.
This is the story of the problem it answers, which is one of the quietest leaks in professional services work: a firm can price its most important product, an hour, for years without ever seeing what that hour actually earns.
How billing insight used to arrive
This firm billed by the hour, against named clients, with categories of work that mattered to the practice. The raw material for every big question was already recorded, carefully, in the tools the firm already used: timesheets on one side, invoices on the other.
What the tools never did was share an answer. To see how the month’s hours matched the month’s bills, someone had to bring the two together by hand: collecting, aligning, checking formats, chasing the odd missing sheet. It was careful, skilled work, and it sat on top of a full-time job, so it happened in the margins of the week and it took more than a week when it happened.
Which is why the sensible cadence was quarterly. The numbers were right, but they were always a season old. By the time the workbook said anything about realised hourly rates, the quarter it described had already been billed and paid.
A second set of questions never had answers anywhere, however patient you were. What are people actually working on this week? Where is someone stuck for two days? How long does a recurring task really take, with this year's team? The information to answer these was distributed across a dozen people's weeks, and nothing collected it.
What we built
Four deliberate pieces, none of them clever:
- Every hour entry knows who and what it is. A time entry carries a client, a project, a work category, a subcategory and a billable flag. Each person logs the kinds of work they do, so an entry is a usable business record from the moment it is saved.
- Categories speak accounting. Each work type carries the synthetic and analytic account codes the firm’s bookkeeping uses, so the export lands in the accountant’s language and nothing has to be translated again downstream.
- The month closes like a ledger. Timesheet months lock automatically. If someone needs a correction, an admin unlocks that one person, for that one month, until a set time. The past stays settled unless opening it is a decision, which is how the rest of an audit practice works anyway.
- A dashboard that answers money questions. Bills live in the same database as the hours, so the dashboard puts them side by side: revenue and hours per month, realised average hourly rate, breakdown by work category, breakdown by client, per-person analytics, and a list of weekdays still missing hours. Export to spreadsheets is still there for payroll and reporting, in one click.
October 2026
Week 41Mo 05
8.5
Tu 06
7.0
We 07
8.0
Th 08
4.5
Fr 09
0
Sa 10
Su 11
Meridian Hatch SAFieldwork
Inventory counts, site two
Meridian Hatch SAReporting
Tie-out notes for review
Casa/common payrollPayroll run
October processing
Meridian internalTraininginternal
Audit standards update
Weekdays under eight hours show up on the dashboard
+ Log hoursAn entry screen in the spirit of the real one, with sample data: the client, the kind of work, the hour or two per day, and the billable decision in one line. The amber strip marks the day still waiting to be filled in.
What a Monday looks like now
The same questions the firm always asked, asked with the same care, but already answered. The rate a price list is really achieving shows in one chart. When a particular relationship looks heavier to serve than the pricing assumes, the hours per client are on the same screen. And the distribution of work across the team is visible while the week is still live.
Billing overview
sample data for illustrationrealised rate
€78.40
per billable hour
billable hours
1,102
this month
billed
€86,401
no VAT
behind
3 people
incomplete days
Realised hourly rate, 12 months
target €80Days still incomplete
I. Popescu
A. Marinescu
R. Tudor
Months close on the last working day. A correction unlocks the month for that person, until a set time.
Hours by client, realised rate
Meridian Hatch SA
€71/h
Nordis Foods
€82/h
Vulcan Estates
€64/h
Internal / admin
n/a
The dashboard, again in spirit and with invented numbers: the realised rate per month, the days that are still incomplete, and how the hours distribute across clients.
Two things changed in the daily routine. Questions that used to be a quarter in arrears now take a glance, not a project. And the fortnight spent gathering missing hours became a short look mid-month, when people can still remember where their week went.
Why people actually fill it in
A timesheet system keeps working only while entries arrive, and the entry is the one piece each person has to do themselves. Ours takes seconds: pick the client and the kind of work, type the hours, done. As a daily habit it fits between tasks, which is what keeps the numbers honest. A week assembled from memory drifts. An hour logged this morning doesn't.
The locks help more than they discipline. Everyone knows a mistake is easy to fix: ask, get unlocked, correct it. What nobody can do is quietly move an entry from one month into another. That combination of easy entry, visible gaps and settled months is why this app survived two years, through staff changes and busy seasons, while still being argued about fondly at coffee.
What it replaced
Nothing they used for their clients. The firm's audit and payroll tools, their accounting software and their document management stayed exactly as they were. The system sits beside them, accepts hours as the input, and hands each downstream tool what it already expects via export. That was a condition of the project, and it remains our default: the new system sits beside the tools people already know, and the change asks nobody to migrate or relearn their week.
Three questions for your own firm
If your firm bills hours, the test is simple. Ask yourself:
- What do we actually earn per billable hour, per client, this month? Is the answer in the room right now, or is it inside a workbook that takes a week to assemble?
- Who is behind on their hours right now, and would we know before the month closes?
- If the colleague who runs the billing workbook is away for two weeks, does the answer wait for them?
If those are your answers, there is nothing wrong with how anyone worked; the tools were simply built to record, not to compare. If that sounds familiar, it is the kind of project we do. And if your answers turn out healthier than most, we will tell you to keep what you have. Have a look at how we price and tell us about your workflow. A few sentences are enough to start.
Frequently asked questions
How do accounting firms reconcile timesheets with invoices?
Usually by exporting hours into a workbook and checking them against invoices by hand. Careful firms do that well; the cost is that the reconciliation is an artefact someone has to rebuild every period. When the entries and the bills share a database, comparison is native: every hour already knows its client, project, category and billable status.
How is a firm’s recovery rate calculated?
Recovery rate is billed revenue divided by billable hours over the same period; the number it yields is the average realised hourly rate. €86,000 billed against 1,100 billable hours is about €78 per hour. Watching that number monthly puts pricing questions on the table in weeks. Discovering it from a quarterly workbook puts them on the table with the year already gone.
How often should a firm analyse its billing?
As often as the effort of the analysis allows. A manual consolidation that runs to more than a week justifies a quarterly cadence, and the result describes history on arrival. One shared system makes the weekly look free, so the firm chooses how often to look instead of rationing its looks.
Have a workflow that looks like this one? Tell us about it — a few sentences is enough.

