Reporting
Sheet 9/12 · Medium · 2–8 weeks (after the source is fixed)The monthly report takes a week, three spreadsheets disagree, and management decides on last quarter's numbers.
- Branch managers send Excel files by WhatsApp; someone consolidates them by hand.
- Sales, stock and cash figures come from three systems and never agree.
- The board pack is assembled the night before; questions are answered "we will check".
- Reports describe what happened; nobody has time to say why.
- Currency conversions are done differently in each sheet.
- Consolidate the recurring files into one table automatically and flag the rows that do not reconcile.
- Write the narrative — what moved, where, and the likely why — from the numbers, for a manager to correct.
- Answer ad-hoc questions ("which branch's margin fell in August?") in plain language from a clean source.
- Produce the same pack every month on time.
- Make five spreadsheets agree; it will summarise five disagreements fluently. The source of truth is a prerequisite.
- Know your currency policy; you set the rate and the date, the AI applies it.
- Replace a controller's judgement on what matters — it drafts, a person decides the message.
- Be trusted without a reconciliation line showing that the total matches the ledger.
| Effort band | Medium · 2–8 weeks after source-of-truth work |
|---|---|
| Data you need | The recurring files; chart of accounts; branch list; the currency policy; last three packs |
| Integration points | POS/accounting exports; bank/EcoCash exports; spreadsheet drive |
| People | Finance controller as owner of definitions; managers as narrative reviewers |
| Measure | Days to close the pack; % rows reconciled; questions answered from source |
| Zimbabwe constraint | Dual-currency conversion policy; branch reporting by WhatsApp; power and connectivity for scheduled pulls |
| Code | Shape | Fit | Why |
|---|---|---|---|
| S-01 | Audit | Primary | Find the sources, count the disagreements, name a single owner per number. Most reporting projects are this. |
| S-04 | Integration | Primary | Pull from POS, accounting and bank exports into one table on a schedule; the AI narrative sits on top. |
| S-05 | Training | Secondary | Managers using a general AI tool to summarise a clean sheet get 60% of the value for 5% of the cost. |
| S-03 | Implementation | Secondary | Reconciliation rules, narrative templates and the question interface for larger firms. |
| S-06 | Managed support | Later | Export formats and branch templates change; someone owns the pipeline. |
- Which sources will feed the report, by which method, and what happens when a branch file is late or malformed?
- Show a month's pack produced from our real files, with the reconciliation line against the ledger.
- How is the ZiG/USD conversion done, at which rate and date, and where is that policy stored?
- When a manager corrects the narrative, does the correction persist next month?
- Can we ask an ad-hoc question and see the exact rows the answer came from?
- Who can see which numbers — is there row-level access per branch?
The full bank of 60 questions, grouped by risk, is at /vendor-questions/.
The disagreement count
Before any vendor call, do one exercise: take last month’s sales total from the POS export, the accounting package and the branch spreadsheets. Write the three numbers next to each other. The gap is the reporting project. An AI layer on top of that gap will give you a well-written paragraph about a number nobody believes.
Source-of-truth rule, one per number
| Number | Single source | Owner | Refresh |
|---|---|---|---|
| Sales (units, value) | POS export | Branch manager | Daily |
| Cash and EcoCash received | Bank and EcoCash exports | Bookkeeper | Daily |
| Stock on hand | Inventory count in POS | Store supervisor | Weekly |
| Exchange rate used | Rate table with date | Finance controller | Monthly, dated |
| Margin | Computed from the above | Finance controller | Monthly |
This table is the deliverable of an audit (S-01) and the prerequisite of everything else on this sheet. Once it exists, the integration is mechanical and the narrative is cheap.
Narrative that admits what it does not know
A good generated commentary reads: “Margin at Bulawayo fell 3.1 points; cost of sales rose while units were flat — likely a purchase-price change, not verified.” The last three words matter. Ask the vendor to show a narrative on your data and look for the hedges; a system that never hedges is hiding its uncertainty.