Insight

Nobody is drowning in data. They're drowning in reconciliation.

Month-end isn't slow because the numbers are hard. It's slow because five people are proving to each other that their versions agree.

8 August 20264 min readShaun Adams

Every operations team we walk into has the same Monday. Someone exports a file. Someone else exports a different file. A third person joins them in a spreadsheet, notices the totals are out by a few hundred, and spends the morning working out which one to trust. By Wednesday there is a number everyone accepts. By Thursday it is out of date.

The instinct is to call this a data problem. It usually isn't. The data exists — it is in the loan book, the CRM, the payment provider, the call system. The problem is that nobody has agreed, once, in one place, what a customer is, what a sale is, or which timestamp counts. So every report re-litigates it from scratch, by hand, in a workbook one person really understands.

What that actually costs

  • The obvious cost: senior people spending days a month producing numbers instead of acting on them.
  • The cost nobody books: decisions made on the newest figure someone happens to trust, rather than the right one.
  • The cost that compounds: when the analyst who owns the workbook leaves, the reporting leaves with them.
  • The cost that stops you dead later: you cannot put an AI agent on top of a process that gets settled by human judgement in a spreadsheet every month.

That last one is why this has moved from annoying to urgent. Manual reconciliation was survivable when a report was the endpoint. It is not survivable when you want software to act on the numbers, because an agent has no way of knowing that the third tab is the one to believe.

The fix is boring

You define the events once — a customer was created, an application was submitted, a payment was taken, a call was answered — and you store them immutably, with the time they happened. Then every report, every dashboard and every agent reads the same events.

Two people can still disagree about what to do. They can no longer disagree about what happened.

That is not a clever piece of engineering. It is a decision about where the truth lives, taken once and then enforced. What follows is well-trodden: BigQuery to hold it, a modelled layer on top so the definitions are written down as code rather than remembered, and one page that shows the business.

How you know you are in the trap

  • The month-end number changes depending on who produces it.
  • Someone maintains a workbook whose logic is not written down anywhere.
  • You have been asked for last year's figures and had to rebuild them.
  • Board packs are assembled by hand, not generated.
  • Your best analyst's week is full of extracting rather than thinking.

If three of those are true, the reporting is not your bottleneck — the absence of an agreed layer underneath it is. Remove the manual reporting entirely and the analyst you already employ becomes the person telling you what to do about the numbers.

Let's talk

Bring one decision your data should be helping you make.

30 minutes, no deck. We'll tell you on the call whether we're the right partner, and exactly what we'd ship in the first 30 days.

30 minutes, no deck. We'll reply the same day.