“Sixty-four clients, nine bookkeepers, revenue over six hundred thousand. And on the thirtieth I open the balance and every single time I cannot work out where it went” — that is how Natalia, the owner of an outsourced bookkeeping firm in Dnipro, started the conversation.
Recognise yourself? The clients are not leaving, the returns go in on time, there are more enquiries than you can take. And after salaries and rent there is nothing left for growth.
The root of it is always the same. An outsourced bookkeeping firm sells retainers and spends hours. The retainer is a fixed figure in the contract and everyone can see it. The hours answer to nobody.
Below we take the firm apart into two units — a client on a retainer and a billable hour — and get to why an hour costs 521 ₴ rather than 360 ₴.
The founder's road: from three sole traders to sixty-four clients
Natalia left her job as chief accountant at a manufacturing company and took on three clients — two sole traders and a small limited company. She did the work herself, in the evenings. Her maths was simple: whatever landed in the account was what she had earned.
Three years later she had nineteen clients. After six — an office, nine bookkeepers, a separate person for source documents. Somewhere around there the feel for the numbers disappeared: the number of contracts grew twentyfold, revenue followed, profit did not.
“When I had three clients, I knew everything about each of them: when he brings the documents, how many invoices he has, how long I sit over him. Now I have sixty-four contracts — and all I know is the figure written in each one.”
Why “sixty-four clients” tells you nothing about money
A client on a retainer is not an order, it is a subscription to your time. You promised “bookkeeping services”, and that wording has no floor to it: behind it sits a sole trader with three payments a month just as comfortably as a limited company with currency contracts and tax audits.
They pay different amounts, true. But the gap in payment never matches the gap in work — and that is where the loss is born. As long as all sixty-four contracts sit in one list marked “serviced”, you cannot answer a simple question: which of them bring money in and which take it out.
Life before the hour became a line item
The way the accounting worked over those four years will be recognised by every bookkeeping firm that grew out of a private practice.
- There was no cost per client. There were salaries, rent and software — all in one pile called “office costs”.
- Nobody recorded the hours. A bookkeeper knew that “this client is heavy”, but that never showed up in figures.
- Work outside the contract was done in silence. A client asked for an HR document, the bookkeeper produced it, and the job never travelled any further than that conversation.
- Retainers were set by eye. By analogy with another contract, or by how much the person agreed to pay.
- Unprepared paperwork counted as normal. No documents — so the bookkeeper hunts and reminds.
- Meetings and training lived outside the books. They happened in working hours but did not count as work.
There is nothing professional about this list. All six points are about the accounting of your own business, not your clients'. That is why neither the bookkeepers nor Natalia ever caught them.
What a month in a bookkeeping firm is made of
Natalia started with the dullest part: she wrote out the month's costs and put next to each the share of revenue it eats.
| Cost item | Monthly amount | % of revenue |
|---|---|---|
| Bookkeepers' salaries | 342 000 ₴ | 54.5% |
| Owner-manager | 58 000 ₴ | 9.2% |
| Office, software, phone and internet | 94 000 ₴ | 15.0% |
| Training and certification | 18 000 ₴ | 2.9% |
| Other | 32 000 ₴ | 5.1% |
| Total | 544 000 ₴ | 86.7% |
What this table shows straight away
Revenue is 627 200 ₴ a month, an average of 9 800 ₴ per client. Costs take 544 000 ₴, that is 86.7%. Profit is 83 200 ₴, margin 13.3%.
Divide the costs by the number of contracts: each of the sixty-four clients carries 8 500 ₴ of cost against an average fee of 9 800 ₴. The difference is 1 300 ₴ per client, and that is the entire economics of a firm with nine bookkeepers. One contract priced wrongly eats the margin of three priced right.
The unit that matters: the billable hour
The cost of a client here is measured in nothing but the hours that went into them. So the first thing you need is the price of an hour.
How Natalia worked that price out
Nine bookkeepers, 168 working hours a month each — a pool of 1 512 hours. Divide the costs by them: 544 000 ₴ over 1 512 hours gives 360 ₴. Natalia's own hours are not in the pool — she does not do client bookkeeping. Her 58 000 ₴ is in the costs, though: the manager's salary lands on the hours that bring money in, and that is how it should be.
The figure is right on one condition — if every working hour were billable, that is, if every minute paid for by a salary went into client bookkeeping. That never happens anywhere.
How many hours actually reach the client
For two months the team logged their time by type of work. It turned out that client bookkeeping takes 1 044 hours out of 1 512, that is 69% of the pool — 116 billable hours per bookkeeper out of their 168.
The costs did not split along with it: all 544 000 ₴ exist for the sake of those 1 044 hours. So an hour of client work costs 521 ₴, not 360 ₴. The difference is 161 ₴, an error of almost 45%, built into every retainer for six years.
Where the other 468 hours go
Between the pool and client work lie 468 hours. These are not skipped days: every one of them is paid for by a salary and spent on something.
| Where the time goes | Hours per month | In money at 521 ₴ |
|---|---|---|
| Internal meetings and reporting | 118 | 61 478 ₴ |
| Training and changes in legislation | 94 | 48 974 ₴ |
| Client work beyond the retainer | 163 | 84 923 ₴ |
| Chasing documents the client never sent | 93 | 48 453 ₴ |
| Total | 468 | 243 828 ₴ |
Why this time does not look like a loss
Because every hour in it is justified: the meeting is needed, the training is compulsory, the client has to be helped, the documents have to be collected. Taken on its own, not one of them looks wasteful. Together they come to 243 828 ₴, almost half the bookkeepers' payroll — and only two of the four lines are a genuine internal necessity.
One hundred and sixty-three hours that cost more than the whole profit
The third line of the table is the key figure of this article. For 163 hours a month the bookkeepers work outside the boundaries of the retainer. This is not heroism, it is small change: explaining to a director how to read a trial balance, preparing a letter for the bank, costing two tax options before a deal. Every request takes twenty minutes, and twenty minutes feels too petty to negotiate over.
In money, 163 hours at 521 ₴ come to 84 923 ₴. The whole monthly profit is 83 200 ₴. Eighty-four thousand of free work against eighty-three thousand of earnings: Natalia gives away slightly more than she keeps.
Per client that works out at two and a half hours a month — such a trifle that nobody ever reported it.
“I always believed that this help was exactly our edge over the cheap competition. When I saw the total, I understood: we are not selling service, we are giving it away, and we live on whatever is left.”
Ninety-three hours spent on somebody else's disorganisation
The fourth line is the easiest to fix and the most galling. 93 hours a month go on getting hold of documents the client never sent: a call, an email, a reminder, another email, a bank export instead of an invoice. 48 453 ₴ that create value for nobody.
And those hours are spread unevenly. A client who keeps his paperwork in order does not take a single minute out of the ninety-three. Every one of them goes on the two dozen clients the firm has to chase.
“In three years one client never once sent an invoice on time. For three years I paid a bookkeeper to telephone him. And not once did I put it on the bill.”
Meetings and training: 212 hours you cannot cancel
The first two lines of the table are fundamentally different. 118 hours of meetings and internal reporting plus 94 hours of training come to 110 452 ₴, and they should not be cut: the law changes every quarter, and a bookkeeper who does not follow it costs more than any course.
You only need to know the real price. In the cost table, training and certification is 18 000 ₴. But the time spent on that training costs 48 974 ₴, almost three times as much: the line shows you the smaller part.
The retainer is the same; the hours consumed are not
Next Natalia did the thing she had not done in six years: she split the clients by complexity and counted the hours group by group.
| Client group | Clients | Hours | Retainer | Revenue | Cost | Result |
|---|---|---|---|---|---|---|
| Simple (sole traders, few transactions) | 28 | 196 | 6 500 ₴ | 182 000 ₴ | 102 116 ₴ | +79 884 ₴ |
| Medium | 24 | 360 | 9 800 ₴ | 235 200 ₴ | 187 560 ₴ | +47 640 ₴ |
| Complex (companies with foreign trade) | 12 | 488 | 17 500 ₴ | 210 000 ₴ | 254 248 ₴ | −44 248 ₴ |
| Total | 64 | 1 044 | — | 627 200 ₴ | — | +83 276 ₴ |
The group totals come to 83 276 ₴ against the 83 200 ₴ of profit in the report. The 76 ₴ difference comes from rounding the hourly cost to 521 ₴, so there is no mistake in it to hunt for.
Why a complex client takes forty hours
On average a client consumes 16.3 hours a month, a simple sole trader 7, a complex company 40.7 hours — that is the group's 488 hours spread over twelve contracts. The difference is not in volume but in the number of different storylines, each of which needs a decision.
- Currency transactions. Exchange differences, an invoice for every receipt, bank confirmations.
- Foreign contracts. Invoices, customs paperwork, reconciliations in English.
- Headcount. Twenty people means sick leave, holidays, indexation, pension reporting.
- Enquiries and audits. A simple sole trader never gets them at all.
- Several sets of books. Statutory, tax and management — the director wants to see all three.
A simple sole trader is seven hours of identical work. A complex company is forty, half of which require thinking.
What an hour costs in each group
Divide a group's revenue by its hours and you see what the client pays for an hour of work against a cost of 521 ₴. A simple sole trader pays 929 ₴, a mid-tier client 653 ₴, a complex company 430 ₴ — 91 ₴ below cost. That is the whole mechanism: a complex client consumes 5.8 times more time than a simple one and pays only 2.7 times more.
Twelve clients who eat half the time
There are twelve complex contracts — 18.8% of the portfolio. They take 488 of the 1 044 billable hours, that is 46.7% of client time, and they bring in 210 000 ₴ out of 627 200 ₴, that is 33.5% of revenue. Half the resource against a third of the money — and it is out of that gap that the 44 248 ₴ loss grows.
The worst of it is that the figure scales: every new complex company at the 17 500 ₴ price adds 3 687 ₴ of loss a month and takes forty hours you did not have in the first place.
Who subsidises whom
The simple and mid-tier groups together contribute 127 524 ₴. The complex ones take away 44 248 ₴ — 34.7% of everything the first two groups earned. Which means twenty-eight sole traders at 6 500 ₴ each are paying for the servicing of twelve companies that are considered the firm's most valuable clients. As long as none of that is visible in the figures, the strategy looks obvious: take on more big ones, because their fee is higher. That is exactly what Natalia did for four years.
“I used to turn small sole traders away, because six and a half thousand is not serious money. And I was delighted by every importing company. It turned out I was systematically refusing profit and buying losses.”
Why an error of 161 ₴ flips the sign
Let us go back to the two figures for the cost of an hour: 360 ₴ in Natalia's head and 521 ₴ in reality. The difference looks technical right up to the moment you put it into the contracts.
The phantom profit of 251 360 ₴
Multiply 1 044 hours by 360 ₴ and you get 375 840 ₴ of cost. Subtract that from 627 200 ₴ of revenue and the portfolio shows 251 360 ₴ of profit, three times the real 83 276 ₴.
The same arithmetic on the complex group: 488 hours at 360 ₴ is 175 680 ₴, and the result looks like plus 34 320 ₴ instead of minus 44 248 ₴. An error of 161 ₴ in the hour does not merely shrink the profit — it flips the sign on a whole group and makes a loss-making strategy look like the right one.
“What got to me was not that we were poorer than I thought. It was that my spreadsheet showed a plus where there was a minus. I had been making decisions by a compass that lied.”
What changed once the hour became a line item
There were three changes and all of them were technical. A second number appeared beside every client — the actual hours next to the retainer figure. Work outside the contract started being logged with one click. Submitting documents got a date and a checklist. Here is what the next six months showed:
- The complex group stopped making a loss. The retainer was revised from 17 500 ₴ to 21 500 ₴ — by 23%, with a list of work the client had never seen before. The group delivered +3 752 ₴ instead of −44 248 ₴, revenue rose to 675 200 ₴, profit to 131 200 ₴, margin to 19.4%.
- Work beyond the retainer became visible. Part of it stayed as service, part went into the contract as separate priced items. Free hours fell from 163 to 82 — that is 81 hours, or 42 201 ₴ a month.
- Chasing documents halved. A deadline of the fifth of the month removed 45 hours out of 93, that is 23 445 ₴. Half the clients sorted themselves out after the first reminder.
In total 126 hours were freed up — almost eight clients at average consumption who can be taken on without hiring another bookkeeper. Billable hours rose to 1 170, that is 77% of the pool instead of 69%, and the cost of an hour fell from 521 ₴ to 465 ₴.
The takeaway for business owners. Wherever a fixed sum is sold for an unfixed amount of work, the figure that matters is not the average fee and not even the number of clients, but the share of hours that reaches billable work. Everything that did not reach it has already been paid for out of your own money. And as long as that stays a feeling rather than a line item, the portfolio will keep filling up with exactly the clients who drain you most.
A few closing thoughts
- Work out the share of billable hours in your pool. Two months of time logging give you the figure without which the cost of an hour is understated by tens of percent.
- Divide costs by billable hours, not by working hours. 544 000 ₴ over 1 512 hours and over 1 044 give you 360 ₴ and 521 ₴; only the second one is any use in a conversation about price.
- Put the actual hours next to the retainer. Two numbers in one row — and loss-making contracts turn up within ten minutes.
- Log work outside the contract even when you do it for free. The volume you give away has to exist as a number — otherwise there is nothing to decide.
- Count what the client pays per hour. A big fee means nothing: 17 500 ₴ for forty hours is worse than 6 500 ₴ for seven.
- Put a price on unprepared paperwork. A deadline is cheaper than a bookkeeper who is in her third year of telephoning the same client.
- Revise the retainer with a list of work, not with a percentage increase. “We need to raise the price” sounds to a client like an attempt to make money; “here is what we do beyond the contract” sounds like a fact.
The money does not vanish — you simply cannot see it
It is easy to think that outsourced bookkeeping rests entirely on qualifications and accuracy. Qualifications are compulsory, but they only decide whether you will work at all, not how much you will earn. Earnings are decided by two figures: the price of a billable hour and the number of such hours inside the contract.
Those 468 hours will not come back on their own. But the moment the hour stands as a line item next to the retainer, the portfolio stops being a list of names: you can see which of the sixty-four are feeding you and which are draining you — and what to start on come Monday.
How to see this in your own firm
Everything described above rests on a single table: every client is a line showing the retainer next to the hours actually spent on them. While nobody records the hours, the gap between a simple sole trader and a company with foreign trade shows up only as team burnout. When the same data is collected automatically, you can see both the true cost of an hour and the clients who take out more than they bring in — which is exactly why small and medium business owners use Finmap: to see the financial picture instead of reconstructing it from memory.
Read also
- Cost per labour hour in cleaning: where the margin goes
- Chair-hour cost: where a dental practice loses profit
Topic foundation: Management Accounting Explained: What It Is and Why Owners Need It
Frequently asked questions
Divide all the firm's costs for the month by billable hours, not by working hours. In the example in this article, nine bookkeepers give a pool of 1 512 hours, and 544 000 ₴ of costs spread over that pool look like 360 ₴ an hour. But only 1 044 hours go into client bookkeeping, that is 69% of the pool — the rest is taken by meetings, training, chasing documents and work beyond the retainer. The real cost of a billable hour is 521 ₴. The difference of 161 ₴ sits inside every contract signed on the old calculation.
The question is better asked in hours than in clients. In the example a bookkeeper has 168 working hours a month, but only 116 of them turn out to be billable. On average a client consumes 16.3 hours — so roughly seven contracts per person, and a portfolio of 64 clients across nine bookkeepers fits inside that. But the make-up of the portfolio matters more than the count: one bookkeeper can handle sixteen simple sole traders at 7 hours each, and only two or three complex companies at 40.7 hours.
From the hours, not from how much the client will agree to pay. In the example a complex company with foreign trade takes 40.7 hours a month, that is 21 187 ₴ of cost at a rate of 521 ₴. The retainer is 17 500 ₴, so every contract like that loses 3 687 ₴ every month, and the whole group of twelve clients loses 44 248 ₴. At a retainer of 21 500 ₴ the group comes out 3 752 ₴ ahead, the firm's revenue rises to 675 200 ₴, profit to 131 200 ₴ and margin to 19.4%.
Because the retainer grows more slowly than the hours. A complex company pays 2.7 times more than a simple sole trader but takes 5.8 times more time. In money it looks like this: a simple sole trader pays 929 ₴ for an hour of your work, a mid-tier client 653 ₴, and a complex company only 430 ₴ against a cost of 521 ₴. Twelve complex contracts — 18.8% of the portfolio — take 46.7% of all billable time and bring in 33.5% of revenue. The simple clients subsidise them, and the more complex ones you sign, the worse it gets.
Start by counting it. In the example it is 163 hours a month, that is 84 923 ₴ at a rate of 521 ₴ — more than the firm's entire monthly profit of 83 200 ₴. Per client it comes to just two and a half hours, which is why nobody ever treated it as a problem. Once those requests started being logged with one click, part of them stayed as service and part went into the contract as separate priced items: free hours fell from 163 to 82, and the firm got back 42 201 ₴ a month.
In the example in this article — 1 044 hours out of a pool of 1 512, that is 69%. The remaining 468 hours break down like this: 118 on internal meetings and reporting, 94 on training and changes in legislation, 163 on work beyond the retainer and 93 on chasing documents the client never sent. At a rate of 521 ₴ that is 243 828 ₴ a month. The benchmark is simple: if the share of billable hours is below 70%, the prices in your contracts are almost certainly too low, because the cost of an hour was worked out across the whole pool. Lifting it to 77%, that is to 1 170 hours, means bringing the cost of an hour down from 521 ₴ to 465 ₴ — without a single redundancy and without a single new client.
You do not need to introduce time tracking for ever — two months is enough. In the example the team simply logged their time by type of work, and that was enough to see both the 468 unbillable hours and the spread between client groups: 7 hours for a simple sole trader, 15 for a mid-tier client, 40.7 for a complex company with foreign trade. After that it is enough to record only the deviations from the usual. The main thing is not to demand accuracy to the minute: the difference between seven hours and forty is visible even in rough records, and it is exactly that difference which flips the economics of a contract. Accuracy to the minute costs more than it gives.
When you have failed to raise the price and the hours are not coming down — and when you know what you will fill the freed-up time with. In the example the complex group of twelve clients brings 210 000 ₴ of revenue against 254 248 ₴ of cost, that is minus 44 248 ₴. Letting them go frees 488 hours, and everything depends on what takes their place: if there are simple clients paying 929 ₴ an hour, the parting pays off; if there are none, you lose 210 000 ₴ of revenue while 544 000 ₴ of costs stay where they are. So the order of moves is this: price first — a retainer of 21 500 ₴ brings the group 3 752 ₴ into the black — then cutting the hours, and only after that the conversation about parting ways.
