The annual report, rebuilt from an export that spanned two systems.
Conference Oxford needed its yearly enquiry report produced to match the one before it. The data came out of a system migration, which meant most of the work was not building anything. It was working out what the figures actually meant before anybody published them.
- The work
- A reporting tool for the annual report
- The data
- One export spanning an old system and its replacement
- Output
- Report tables and charts, matched to the prior year
- When
- Summer 2026
- Reference
- Matt Brown, named, in writing
Matt is happy to be contacted about this but would rather his details were not posted publicly. Ask me and I will put you in touch.
The reason each enquiry closed had not come across.
The export was taken mid-migration, so it spanned the old enquiry system and the one replacing it. Most of the trouble came from that, and none of it was anybody's fault. Things do not survive a migration intact.
The important loss was the closed reasons. Whether an enquiry ended in a booking, a cancellation, or the client going elsewhere is the question the report exists to answer, and for a large share of the year that field arrived empty. That single gap decided what could and could not be published, and most of the judgement calls further down this page follow from it.
The rest was the usual migration debris. Dates stored as text rather than dates, so sorting them put April before August. Delegate numbers held as a range instead of a figure. Rows sitting outside the reporting year because the export had not been trimmed. A country field that read GB for an address in Beijing, so the overseas figures had to be rebuilt from postcode formats and the addresses themselves.
None of it is visible when you open the file. It looks like a spreadsheet full of enquiries. You find it by going through the thing column by column and asking what each one is actually counting.
This is the part people think they are paying for a tool to do. They are not. A tool will happily total a column that means three different things.
The raw export is never touched. Every rule and every fix is on the record.
The export sits in the workbook exactly as it arrived. The rules live in one place, the corrections live in another and are keyed to the enquiry reference, and everything downstream reads from those. So any figure can be traced back to the row it came from and the rule that shaped it, and a corrected export can be dropped in without unpicking a year of edits.
From that, one clean row per enquiry, and the report tables and charts built off it. The previous year's published figures were typed in with their page references, so the comparisons can be checked against the PDF rather than taken on trust. The workbook ties itself back to the exact number of rows that were sent, and says so on its own health check.
Every enquiry that needed something from the client is listed one to a row, with the cell for the answer sitting next to it. Their replies are kept verbatim, so a decision made in August is still readable, and still attributable, in a year's time.
Roughly a hundred and twenty thousand formulas point at fixed addresses. Move a cell on the rules sheet and it all falls over silently. That warning is written into the workbook, where the next person will actually read it.
A figure that flatters you is worse than no figure.
With that many outcomes missing, there was an obvious way to make the report look healthier: quote every outcome as a percentage of the ones that were known. The percentages would have been excellent. They would also have been meaningless, so that column does not appear anywhere in the report, and the reason is printed under the tables that would have carried it.
The same went for the year-on-year value comparison, which sits on two different price bases and cannot be made like-for-like retrospectively. It is published with both faults stated underneath rather than quietly left to speak for itself. Twelve caveats were assessed one at a time and each was either held back or published with the caveat attached.
And where the client said a set of figures was wrong but could not say what the right ones were, they were left alone and flagged. Correcting them would have moved two other tables, and a confident wrong number is the thing this whole exercise exists to prevent.
Reported with confidence is Matt's phrase, not mine. It is also the actual deliverable. A number nobody trusts is not a number, it is a meeting waiting to happen.
Ollie built us a very effective tool to aid with our annual reporting, which involved pulling together a large amount of complex data from two different systems.
Clearly Ollie has an excellent knowledge of the technical side of things, but what impressed me was the time he took to properly understand the data, asking all the right questions, highlighting any anomalies, exceptions and potential issues that he found throughout the process, to ensure that the end results were accurate and could be reported with confidence.
Matt Brown
Database and Enquiries Administrator, Conference Oxford
Book a call to learn more
Twenty minutes, no preparation needed and nothing to send me beforehand. Tell me what you are currently doing by hand and I will tell you honestly whether it is worth automating. If you would rather see the shape of the work first, the example audit is a real one, start to finish.