Skip to content
databoat

← Writing

Your reporting template works until the export changes shape

Every recurring report eventually becomes a saved workbook nobody dares touch. The failure mode is not that it breaks — it is that it keeps working and quietly returns the wrong number.

PublishedAugust 9, 2026
Reading3 min
Written forBookkeepers

Everyone who builds the same report twice ends up building it once properly. A workbook with the formulas in it, a tab for raw paste, a tab for the output, a chart wired to a named range. Save as template. Next month, paste and go.

It is the right instinct and it works for a while. Then one of these happens:

  • A column gets renamed, so the lookup returns nothing.
  • A report gets split into two exports, so half the rows vanish.
  • The date format flips between 03/04 and 04/03 and nobody notices until the quarter looks strange.
  • Someone exports with a different set of fields ticked and the columns shift one to the left.
  • A new product line adds rows below the last formula in the range.
  • The platform starts including a summary row at the bottom, which gets summed into the total.

Two kinds of failure, and only one is fine

Loud failure is the template breaking. A #REF!, a chart with no data, a total that is obviously nonsense. It costs an hour of annoyance and you fix it. Annoying, survivable, and honestly the good outcome.

Quiet failure is the template continuing to work and returning a number that is wrong. The lookup matches a similar column. The sum captures a summary row. The average includes a blank that Excel treats as zero. Nothing looks broken. The report goes out. The client reads it, or worse, acts on it.

Quiet failure is the real risk in recurring reporting, and it is why people who have been burned once keep checking their own templates by hand every month — which defeats most of the point of having a template.

Why this is structural, not sloppy

It is tempting to treat this as a discipline problem: be more careful, add validation, lock the ranges. That helps at the margin. But the underlying issue is that a spreadsheet template encodes positions — this column, that range — while what you actually mean is concepts: recognised revenue, this client's payroll cost, orders excluding cancellations.

As long as the definition is positional, any change in the file's shape can silently change its meaning. The template has no idea what the columns are supposed to be, so it cannot notice when they stop being that.

What a real fix has to do

The bar is not "produce a report." Any tool can produce a report. The bar is:

  1. Understand the file once, in terms of meaning — this column is the net amount, this is the posting date, this row is a total and not a transaction.
  2. Freeze that understanding so numbers are computed identically every month and this month genuinely compares to last month.
  3. Notice when the file underneath changes — a renamed column, a new field, a different grain — and say so in language a human can act on, before the report goes out.

Point three separates a product from a template with extra steps, and it is the hardest of the three. It is also the one people only appreciate after it has saved them once.

The uncomfortable version

If your monthly reporting runs on a workbook you inherited, are afraid of, and check by hand anyway — the checking is the actual product. The workbook is just where the formulas live.

Early access

We are building this.

Databoat rebuilds recurring reports from the files your systems export — no connector required. Tell us which report you rebuild every month; it shapes what we support first.

No drip sequence. No spam.