What a late-paying client actually costs you, counted in hours

Late payment is written about as a cash-flow problem. The part nobody counts is that chasing the money is unpaid work, it belongs to one client, and it drops that client below the rate you agreed.

CronLoom 4 min read

A client who pays six weeks late has not paid you the rate you agreed. The fee is the same, the work is the same, and the hours are not: somewhere in those six weeks you wrote reminders, made calls, re-issued paperwork and thought about it more than once. That is unpaid work, it was caused by one client, and it comes off that client’s effective rate.

Why the usual advice misses this

Search for late payment and you get cash flow. Keep a buffer, invoice sooner, add payment terms, know your rights on interest. That advice is fine as far as it goes, and it treats the problem as one of timing: the money arrives eventually, so the cost is the wait.

For a solo freelancer the wait is only half of it. You are the accounts receivable department. Every reminder is drafted by the same person who does the billable work, out of the same finite week. The money turns up in the end and the hours never do.

What the chasing actually consists of

It is worth writing down, because it looks like nothing until it is listed:

  • Two reminder emails, and the reading and re-reading before you send the second one
  • A call that goes to voicemail
  • Re-issuing the invoice because it needs a PO number nobody mentioned
  • Forwarding it to a second contact after the first stops replying
  • Doing the whole loop again a week later
  • The five minutes, several times, of checking whether it has landed

None of that has a line item. All of it is work, and none of it would have happened if this particular client had paid on the date you both agreed.

The arithmetic

Say the project came to $4,200 and took 48 hours. That is $4,200 ÷ 48 = $87.50 an hour, which against a floor of $85 is an engagement you would call fine without looking closer.

Now add the hours it took to collect. Call it five, across six weeks, which is not a dramatic number for an invoice that goes properly late.

$4,200 ÷ 53 = $79 an hour.

The work was finished and approved before a single one of those five hours happened. The fee never changed. The engagement is now $6 an hour below the floor instead of $2.50 above it, and nothing about the project caused that.

Which leads somewhere more useful than a complaint. Two clients on identical terms, one paying in two weeks and one in eight, are not the same client. The invoice says they are. The hours say otherwise, and ranking your clients by the hour is where that difference shows up.

You can run one engagement through the effective hourly rate calculator if you want to see the gap on a real invoice of your own.

Where those hours belong

This is the part that decides whether the number is any use: file the chasing against the client, not under admin.

Time spent on bookkeeping, your own marketing, or your tax return is genuinely non-billable overhead. It gets carried by every client, because every client benefits from you having a functioning business. Chasing one specific invoice does not work like that. It has a name on it.

Put it under admin and it spreads itself evenly over people who paid on time, which flatters the late payer and quietly penalises everyone else. Put it against the client and it lands in their effective rate, which is the only place the information changes a decision.

What to do about it

Log it as it happens. Not from memory at the end of the quarter, when you will guess low. A timer running while you write the third reminder feels absurd for about ten seconds and then produces the only honest version of the number.

Move the rate, not the reminder. The instinct is to write a firmer email. The arithmetic points somewhere else: if this client reliably costs five extra hours per invoice, that is a known cost of working with them, and known costs belong in the quote. When you next raise your rates, theirs is the one with a specific case behind it.

Ask for a deposit next time. It shortens what you are exposed to, and it is worth doing. Be clear about what it does not do: a deposit does not stop the chasing on the balance, so keep counting those hours either way.

Where CronLoom comes in

CronLoom does not send invoices and does not send reminders. What it does is keep the division current: you track against a client, including the hours after the work is done, and the effective rate for that client stays up to date against the floor you set. When someone slips under the line, it is flagged then rather than at year end.

The point is that the chasing time has somewhere to go other than your memory. Join the waiting list if you want that running as the month runs.

Try it on the invoice you are waiting on

Take the one that is overdue right now. Write down the fee, the hours the work took, and then the hours you have already spent trying to get paid for it. Divide.

Then ask whether the number you get is one you would have quoted at the start.

Questions, answered straight

Frequently asked questions

What does a late-paying client actually cost me?
Two things, and most people only count the first. There is the money you do not have yet, which is a cash-flow cost. Then there are the hours you spend getting it: reminders, calls, re-issuing paperwork, following up again a week later. Those hours are unpaid work caused by one client, and they lower what that client paid you per hour.
Should I track the time I spend chasing invoices?
Yes, and against the client rather than as general admin. Filed as admin it disappears into overhead and gets spread evenly across everyone. Filed against the client who was late, it shows up in their effective rate, which is where the decision about that relationship actually gets made.
How do I handle a client who always pays late?
Treat it as a pricing question rather than a politeness question. Count the hours their late payment costs you, add them to the hours that engagement took, and see where the rate lands. If it lands below your floor, the next quote to them is the thing that has to change, not the tone of your reminder emails.

Put numbers to it

Every hour, accounted for.

You set a floor rate; CronLoom flags the clients and fixed bids that slip below it, and projects where the month lands.

Join the waiting list

No credit card · later flat €/$9