Chapter 2

Bad-debt review — specific and general

Walk your aged-debtors list. Raise specific provisions for the doubtful ones. Set a general % for the statistical baseline. Both post real journals you can defend if asked.

9 min readLast updated 26 May 2026
Jump to section

The £40,000 ghost

A finance director we worked with had been carrying a £40,000 debt on the AR ledger from a customer who went into administration in October 2022. The administrators had paid out a 4p-in-the-pound dividend the following spring, which the finance director booked as a receipt — but the remaining £38,400 sat there. Every aged-debtors report, every management pack, every conversation with the bank: that £40,000 looked real.

Why hadn't it been written off? Because nobody had told the system the customer was gone. The administrator had emailed in 2023. The finance director had forwarded the email to the bookkeeper. The bookkeeper had filed it. Nobody had raised a provision. The receivable lived on, polluting every revenue calculation, every debt-to-income ratio, every conversation about working capital.

When we walked the aged-debtors list together at the next year-end, the customer's name was at the top. "Oh, them — they went bust ages ago". Two clicks later, the provision was raised, the journal posted, and the £40,000 was reflected at its true value: zero. The next set of management accounts showed a one-time bad-debt expense — embarrassing, but cleaner than carrying the ghost for another year.

Year-end is when you exorcise the ghosts. This chapter walks you through how.

Why bad-debt review matters

The accounting principle behind bad-debt provisioning is straightforward: your accounts are supposed to show debts at the value you actually expect to receive, not their face value. A £4,200 invoice from a customer who's never going to pay is worth £0, not £4,200. Carrying it at face value misrepresents your receivables and overstates next year's revenue.

UK GAAP requires you to recognise an allowance for amounts you don't reasonably expect to collect. So does FRS 102. So does IFRS. So does common sense. The only question is how you recognise it.

There are two complementary mechanisms — name-the-customer (specific provision) and statistical-baseline (general provision). Most well-run companies do both. Blankitt does both.

Specific provision — name the dodgy debt

A specific provision identifies a single invoice and provisions against it. "Customer X, invoice INV-0428, £4,200 — they went into administration on 14 January". The reason is on the record. The amount is on the record. Anyone looking at the books years later can see exactly what you decided and why.

The journal is mechanical:

DR  6800  Bad Debt Expense           £4,200
CR  1190  Allowance for Doubtful Debts   £4,200

The invoice itself stays on the AR ledger. The receivable survives — Blankitt doesn't write it off (yet); it parks an allowance against it. The invoice can still be reconciled against a partial payment. If the customer surprises you and pays, you reverse the provision and life carries on. If the debt is definitively dead, you mark it written off and the AR line clears.

This three-state design — provisioned, recovered, written off — exists because most doubtful debts aren't actually dead. They're 90+ days overdue, the customer has gone quiet, and you suspect the worst. Until the suspicion is confirmed (administration notice, returned post, the personal guarantor declares bankruptcy), it's a provision. Provisional. Reversible. Soft.

General provision — the statistical baseline

The general provision is the bit you can't pin to one customer. It's the acknowledgement that some of your aged debt will turn out to be uncollectable even if you can't yet point at which lines. UK practice expresses this as a percentage of each aged bucket:

BucketTypical %
Current (not yet due)0%
1–30 days overdue0%
31–60 days overdue5%
61–90 days overdue10%
90+ days overdue50%

The percentages aren't statutory. They're a judgement call based on your historical bad-debt experience. A business with rock-solid corporate customers might run 0/0/0/2/10. A consumer business with no credit-checking might run 0/5/15/30/75. Whatever they are, you set them once as policy and the engine applies them every period.

The maths is: net outstanding AR × bucket-% = provision per bucket, summed to a target total. The delta between the target total and the current active provision becomes a single journal — DR Bad Debt Expense / CR Allowance for Doubtful Debts for the signed delta. If the target's gone up since last period, you post more expense. If it's gone down (debtors have paid, or you raised specifics that took dodgy invoices out of the general calc), you post a credit and the expense reverses.

The two don't double-count

This is the bit that confuses people most: specific and general aren't independent. If you raise a specific provision against INV-0428 for £4,200, then the general provision calc takes that £4,200 out of the bucket before applying its percentage. Otherwise you'd be provisioning twice for the same exposure.

The engine does this for you. The general provision calculation runs against net outstanding AR — gross AR minus active specific provisions. You don't need to manually subtract. You just need to do the specifics first, then the general, so the general sees the right baseline.

This is also why the chapter order in this series puts specifics before general: do the named ones first, then the statistical one consumes their effect.

How to walk the aged-debtors list

Open Reports → Aged Debtors. Sort by oldest first. The 90+ bucket is where the dragons live — anything sitting there has been overdue for three months, and at this point you should know in your gut whether you're going to collect.

Read down the list. For each customer in 60+ buckets, ask yourself one question: will I collect this?

  • Yes, certainly — leave it. They've gone quiet for a reason but it'll come through. Set a reminder to chase.
  • Maybe — chase them. Phone, not email. If you haven't heard back in two weeks, treat as "no".
  • No, almost certainly not — raise a specific provision.

The judgement is yours, but err on the side of provisioning. The provision is reversible. Carrying a ghost on the books is harder to unwind than retracting a provision later. Auditors prefer over-provisioned books to under-provisioned ones; HMRC doesn't care either way as long as the basis is reasonable.

Raising a specific provision

  1. Open the customer invoice from the aged-debtors report (or directly from Customers → Invoices).
  2. Click Raise provision on the action bar.
  3. Enter the provision amount. Most of the time it's the full outstanding. If you think you'll recover half, provision half — Blankitt supports partial provisions.
  4. Enter a reason. This is the most important field in the whole flow. "Customer in administration, notice received 14 Jan 2026" is good. "Doubtful" is bad. Future-you, or your accountant, or HMRC's inspector, will read this in 18 months.
  5. Confirm. If the amount is below your approval-policy threshold for document type bad_debt_provision, the provision posts immediately. Above the threshold, it sits in pending_approval until an authorised user signs off.
  6. The invoice now shows a Provisioned badge. The aged-debtors report deducts the provision from outstanding, so the bottom-line total is what you actually expect to recover.

Repeat for every doubtful invoice. Five doubtful invoices from the same customer? Five provisions. The audit trail is per-invoice on purpose — one customer might have legitimate disputes on three lines and a real bad debt on two.

Configuring the general provision

  1. Open Bad debts and click Manage on the General Provision card.
  2. Set your percentages per bucket. The defaults are 0 / 0 / 5 / 10 / 50 — adjust based on your debtor history.
  3. Toggle Enabled on. The policy is opt-in per entity — until you flip the switch, the Post Journal button refuses.
  4. Pick your as-at date (year-end).
  5. Click Recompute to see the bucket breakdown live: net outstanding × % per bucket = provision per bucket, summed to a target total.
  6. The card shows the delta vs the current active provision. If non-zero, click Post journal. The engine posts a single journal for the signed delta.

Key point: The general provision is idempotent against re-clicks. Only one active row is in force at any time. Posting again on the same as-at date is safe — the engine recognises there's no delta and posts nothing. Posting on a new as-at date with new numbers supersedes the previous row (marked superseded, not reversed) and posts the delta.

Reversing a provision

If a customer surprises you and pays after you've raised a specific provision, you don't just receipt the bill normally — that would leave the provision dangling and the Allowance for Doubtful Debts inflated. Instead:

  1. Find the provision on the bad-debts page.
  2. Click Recover (or "Reverse" — same thing). This posts the inverse journal: DR Allowance for Doubtful Debts / CR Bad Debt Expense. The provision row flips to recovered.
  3. Then receipt the customer payment normally — the bill flows through, AR clears, life carries on.

The order matters. Recover the provision first, then receipt the payment. If you receipt first, the bill will reconcile but the Allowance for Doubtful Debts is left with a £4,200 credit balance that doesn't relate to anything. Cleanable, but ugly.

For the general provision, you don't manually reverse. The next period's recompute will see lower debt outstanding (because the dodgy invoice is now paid) and will naturally rebalance the policy total downward. Use Reverse on the general provision only for policy corrections — e.g. you realised your 50% on 90+ was wrong and you want to start again at 30%.

Tips for year-end

  • Specifics before general. Always. The general calc nets specifics out — running them in the wrong order means re-running the general after the specifics are in place.
  • Document the reason. Every specific provision needs a why in the reason field. "Customer X went into administration, notice from BDO dated 14 Jan 2026, ref BDO-2026-0114" beats "doubtful" by miles. Audit will ask, and "I think it was a doubtful debt?" is not an answer.
  • Don't over-provision the general to "be safe". Setting your 90+ bucket to 100% might feel prudent but it depresses profit, depresses corporation tax (yes, less tax — but HMRC may push back if your basis is unreasonable), and overstates next year's recovery when those debts do get paid. Anchor to history.
  • Don't write off prematurely. Provision while there's still a chance; write off only when the debt is definitively dead. The intermediate state — provisioned but not written off — is where most year-end bad-debts should live.
  • Run the report at the year-end date. Not today's date. The aged-debtors report has an as-at date selector at the top — set it to your year-end. Provisioning at the right age basis matters; a debt that's 89 days overdue today might be 120 days overdue at year-end, and that affects the bucket it falls into.

Up next

Chapter 3 is VAT bad-debt relief. Every specific provision you just raised might be eligible for a VAT reclaim under HMRC Notice 700/18 — if the invoice is 6 months past due and you wrote off the debt, you can claim back the VAT you originally charged. The engine handles this automatically; the next chapter explains what's actually happening so you can sense-check it.

Still stuck? Email support or open the support widget in the bottom-right.