▸ AgenTomte

October 20, 2026 · 6 min read

Automated board report: what refreshes itself, what needs a click

By Sahan, co-founder, systems and delivery

An automated board report is two jobs, and they automate at different speeds. The first job is keeping the numbers current: revenue, cash, the handful of metrics the board actually reads. That part can run unattended on a schedule. The second job is assembling the pack itself, and in our own setup, as of October 2026, that is still a button a person presses.

This post walks through both halves as we run them across our own group of companies, including the part that is not finished.

Why board packs eat finance time

Most of the effort in a board pack goes into collecting and checking numbers, not into the commentary. The FP&A Trends Survey 2025 (July 2025) found that 46% of FP&A time still goes on collecting and validating data rather than analysis. The same survey found only 17% of organisations rate their data quality as good.

The tooling explains a lot of it. The AFP 2025 FP&A Benchmarking Survey (January 2025, 362 practitioners) found 96% of teams plan in spreadsheets and 93% use them for daily or weekly reporting. 61% called unreliable data a problem.

Directors notice. In PwC’s 2025 Annual Corporate Directors Survey (October 2025, more than 600 public company directors), 28% of boards said they acted on their last self-assessment by giving management feedback on the format or content of board materials. That was the second most common action they took.

I could not find a 2025 or 2026 survey from a named research firm that measures hours spent per board pack. The 46% figure is the closest honest proxy, so treat it as that.

What the weekly refresh does, step by step

The weekly refresh is the half that runs on its own. A tomte, our word for one production agent with one defined job, owns it. Its job is narrow: put this week’s revenue on the strategy board, and touch nothing else.

  1. Early every Monday, it reads revenue from the consolidated finance layer. Not from raw accounting exports. The finance layer has already done the currency and entity work, so the agent never recomputes it.
  2. It pulls each company’s revenue, split by channel where a company sells through several, plus one group-level growth metric.
  3. It overwrites two fields per metric: the current value and the “as of” date. Targets, units and which direction counts as good stay exactly as a person set them. The agent cannot move a goalpost.
  4. If a company or channel has no data that week, it skips that one metric and logs the run as partial. A blank stays blank. It does not carry last week’s number forward and pretend.
  5. A dry-run mode fetches the real figures and writes nothing, so any change to the logic can be checked against live data first.
  6. It logs every run, so “did it run on Monday?” is a lookup, not a question for someone.

One channel has no ledger source at all, so a person still types that figure in by hand. We left it manual on purpose. Inventing a source to make the board look complete would be worse than a visible manual field.

What the board pack does, and where it stops

The pack is a separate tool. Only the chief executive can open it, and access fails closed: if the check cannot confirm who you are, you see nothing.

  • Every figure on screen carries an “as of” date and a confidence tag, read from the finance layer’s cached reports.
  • “Generate pack” starts a background job that reads the consolidated balance sheet twice and compares the two reads. If the numbers moved between reads, the job flags drift instead of printing a pack built on a moving target.
  • It renders HTML and PDF versions and stores both.
  • The narrative wording is a fixed template. No model writes the commentary. A board pack is the wrong place for a sentence nobody can trace to a number.

Where it stops, plainly: the pack is not scheduled and has not yet run unattended. Nothing connects it to the weekly refresh, so its numbers update when someone generates a new pack, not by themselves. One revenue question is still open, about how sales between companies in the same group get eliminated, so every pack is hand-checked before anyone relies on it. Sharing outside the company is a person generating a pack and sending it. There is no external or redacted mode.

So the honest version of “a board pack that refreshes its own numbers” is this: the numbers refresh themselves weekly, and the pack rebuilds from them in one click.

Manual pack, refreshed numbers, fully automated

Manual packWeekly refresh + on-demand pack (ours, Oct 2026)Fully scheduled pack
Numbers currentWhen someone rebuilds the spreadsheetEvery Monday, unattendedEvery run
Who assembles the packFinance, by handOne click by the chief executiveNobody
CommentaryWritten fresh each monthFixed templateTemplate or model-drafted
Drift checkNone, or a reviewer’s eyeTwo reads compared before renderingSame, plus scheduled alerts
Main riskCopy-paste errors, stale tabsOpen methodology question, hand-checkedA wrong number reaches the board unread

What went wrong first

Until late September 2026, the weekly refresh wrote one lump revenue figure into three separate channels for one company. Each channel showed the same total. Nothing errored, so nothing alerted. The fix was to read channel-level revenue properly, and to have the agent skip a channel rather than fill it with a group number when no channel figure exists.

The lesson carries into the pack. A refresh that writes plausible numbers into the wrong boxes is worse than one that writes nothing, because a board will read a full table without asking. That is also why the pack stays behind a hand check until the open revenue question is settled. We cover the daily version of this problem, checking freshness before a summary goes out, in our post on automated business reporting.

What it costs to set up

A board-reporting setup is usually not a standalone build. It is the reporting half of a Fractional AI Officer engagement at $2,900 per month: one new automation shipped each month, monitoring of everything already running, and a weekly written brief. In practice the weekly refresh is the first month’s automation and the pack generator is the second. Cancel monthly; everything runs on your accounts with your keys, so you own the delivered code, data and documentation.

If your month-end close is still the bottleneck, fix that before the pack. A board pack is only as current as the close behind it, which is the subject of our month-end close post.

The refresh runs inside the same governance layer as the rest of our agents: an owner, a scope and a kill switch per agent. Our agent fleet case study shows that layer, with 41 agents registered and 5,450 runs at zero failures over 13 days measured to July 2026.

Start async

If your board pack is a spreadsheet someone rebuilds every month, start async. Tell us in writing which numbers the board reads and where each one lives today, and we reply within one business day. No calls.

Tell us what you want automated

Describe the work in writing. You get a written reply within one business day: a fixed-price proposal, a scoping question, or an honest referral out.

Start at /start

▸ written reply within one business day · no call scheduled, ever

Doesn't fit a package? Tell us what you need anyway.

Questions? Ask in writing

no chatbot · a human replies

Ask us anything, in writing

A founder replies within one business day. That is the same promise clients get.