BE Teck Notes Back to be-teck.com

5 min read

Writing off money that is never coming

A write-off is a decision, not a correction. The amount matters less than the reason, and the reason is the first thing most systems throw away.

At some point somebody decides that an amount owed will not be received, or an amount payable will never be claimed, and the balance is written off.

The number changes and the ledger balances. That part is easy. What matters about a write-off is not the arithmetic at all — it is that a person made a judgement, and the judgement is the thing worth keeping.

A write-off is not a correction#

Three operations look similar on a balance and are completely different in character:

A correction fixes something that was recorded wrongly. The balance was never real. There is a right answer and you are moving to it.

A short payment settles for less by agreement. The balance is not owed because both parties said so. Its mechanics are in paying less than agreed.

A write-off accepts that a real, valid balance will not be collected or paid. Nothing was wrong. Somebody has decided to stop pursuing it.

Only the third involves a judgement about the future, and only the third carries a reason that somebody may need to defend. Systems that offer one mechanism for all three end up with a ledger in which nobody can tell an error from a decision.

Who is allowed to decide#

Writing off is giving up money. It should sit at least as high in the authority structure as spending the same amount, and frequently it does not — because spending has a form and a queue, while writing off is often just an edit on a screen.

Two properties are worth insisting on.

Authority proportional to amount, like any other financial decision. If two people are needed to pay a sum, two people should be needed to abandon the same sum. The reasoning behind that floor is in why one person should never move the company's money.

Never available to the person whose performance the balance reflects. Somebody responsible for collection should not be able to make an uncollectible balance disappear, for the ordinary reason that it removes the evidence of the thing they are measured on.

The reason is the record#

Once a balance is written off, the only surviving trace of the whole episode is whatever reason was recorded.

That reason has to answer three questions asked later, usually by an auditor, occasionally by a court:

  • Why was it not collectible? Vendor dissolved, dispute settled, cost of pursuit exceeded the amount, work never accepted.
  • What was attempted first? A write-off with no history of pursuit looks very different from one following a documented sequence of chasing.
  • Who decided, and when?

"Adjustment" answers none of these, and "adjustment" is what a free-text field with no guidance receives.

We refused, in our own system, to allow a payment schedule containing written-off stages to be deleted. Deleting it would have been convenient — the schedule was cluttering a page — and it would have taken with it every recorded reason for every write-off on it. Those reasons are the only surviving answer to who decided the money would never come. The refusal is deliberate and it occasionally annoys people, which is roughly the right outcome for a control.

The write-off that races a payment#

A small technical failure with a large consequence, and it is worth understanding because the shape recurs everywhere.

Our write-off routine read the record, confirmed it was not paid, and then wrote the write-off. Two separate steps. If a payment landed in the gap between the read and the write — which is a matter of milliseconds, and therefore happens — the write-off proceeded anyway and papered over a payment that had just been received.

Nothing errored. The balance was zero either way. But the ledger recorded abandoned for money that had actually arrived.

The fix was to make the condition travel with the write, so the update itself refuses if the state has changed since it was read, rather than checking first and trusting the world to hold still.

The general form: any check followed by an action is a race unless the check is part of the action. In financial code this is not a theoretical concern. It is the mechanism behind double payments, double refunds and reversals of things that were never done.

Ageing is what prevents the ambush#

Write-offs are unpleasant partly because they arrive in clusters at year end, when somebody finally goes through open items.

The remedy is boring: age receivables and payables continuously, in bands, and put the old ones in front of somebody monthly. A balance that has been visibly ageing for six months is a decision waiting to be made. The same balance discovered in March is a surprise, and surprises get resolved under time pressure by whoever is in the room.

This connects to something structural. Old open items are very often not uncollectible at all — they are payments made in stages that the system never recognised as settled, or deliveries never matched to their order, or advances never recovered. Writing those off is not a commercial decision; it is destroying evidence of a data problem.

So the sequence matters: reconcile first, then age, then write off what is genuinely left. The reconciliation that settles most of them is against the other party's own ledger — when your ledger and theirs disagree. Writing off first is faster and it hides the thing that would have prevented the next twenty.

Reversal, and why it must exist#

Occasionally a written-off amount is recovered. A vendor pays after all; a disputed claim settles.

That must be recordable, and it must be recordable as a reversal of a specific write-off, not as fresh income from nowhere. Otherwise the write-off history overstates losses, the recovery understates their relationship, and the pattern that would tell you which write-offs were premature is invisible.

The requirement is the same one that applies to every correction in a financial record: entries are added, never edited, and the history stays readable. That principle has its own piece — append-only records.

The short version#

A write-off is a decision to stop pursuing a real balance.

Keep it distinct from a correction and from a settlement, put it at the same authority level as spending the same money, and never let the person measured on the balance be the one who erases it.

Make the reason a required, structured field, refuse to delete anything that carries those reasons, and reconcile before you age and age before you write off.

The number is the least valuable part of the record.

Have a gap worth closing?

If something in your daily work is broken in a way everybody has stopped complaining about, that is exactly what we want to hear.

Write to hello@be-teck.com

More notes