The number in your deck isn’t the number in the system.
We agree what each metric means, write it down, and build the reporting on the tools you already pay for. It refreshes before you are at your desk, and it keeps working when somebody renames a column or leaves.
One report done properly: one week, $1,500. Full build from $6,500 — $750 for the first three.
Two lines by email · no obligation · answered by the person who would do the work
Where reporting files break, in the order it usually happens
A renamed column
The formula keeps working and silently returns the wrong slice. Nobody notices for a quarter.
A new channel
A warehouse, a marketplace, a region — added to the business, never added to the mapping.
Two definitions
Two people compute margin differently, so two decks disagree and the meeting becomes about whose number is right.
The forty-second file
It grows until opening it is a decision, and after that it stops being refreshed on schedule.
The author leaves
And the logic leaves with them, because it lived in nested formulas nobody else has read.
The bottleneck
Every question about numbers routes through one person, who now can't take a week off during peak.
None of that is a spreadsheet problem. It's a definitions problem wearing a spreadsheet — which is why buying a BI tool on its own rarely fixes it.
Tools don't decide what a number means
The plan we hear most is "we're buying a BI tool next quarter". The tool isn't the hard part.
The hard part is deciding what a unit of margin includes, which orders count as fulfilled, and whether a return is subtracted in the month of the sale or the month of the return.
No tool answers that. A dashboard built on undecided definitions is a faster way to disagree. We do the deciding and the writing down first, then build on top of it.
Whatever you already pay for
Power BI, Looker Studio, Metabase, a warehouse you already have, or scheduled exports with a clean model behind them. On the source side: an ERP, a CRM such as Salesforce or HubSpot, GA4, an ad platform, a WMS, a finance system, or a folder of spreadsheets somebody maintains. We don’t sell licences and have no platform to push.
If your systems only emit CSVs on a schedule, that is workable — plenty of good reporting runs on files. What matters is whether somebody has to touch them each week.
The same job, in other people’s vocabulary
The examples further down come from operations, because that is where we started. The problem itself is industry-neutral: several systems, one metric, no agreed definition.
Insurance and benefits
KPI reporting assembled by hand from claims, eligibility and vendor files — where “paid claims” means two different things.
Healthcare analytics
Denials, ageing and collections from a practice system and a clearing house that disagree on what counts as resolved — or cost and utilisation pulled from claims and membership files.
Professional services
Utilisation, realisation and matter profitability, where time, billing and the plan each hold part of the answer.
Projects and construction
Budget against committed against actual, rebuilt every month because the source files change shape.
Manufacturing and distribution
Output, scrap, on-time delivery and cost per unit, spread across an ERP, a production system and spreadsheets.
Subscription and marketplace
Retention, cohort and channel margin, where billing, the store and the ad platforms each count a customer differently.
Marketing and growth
Acquisition, conversion, LTV and attribution, where three tools report three numbers for the same week — and the one quoted is the one that looks best.
Finance operations
Month-end close, revenue reconciled between the operational system and the ledger, and the discrepancy list cleared by hand every period.
Reporting your clients depend on
Agencies, service providers and BPOs delivering recurring extracts into a client’s systems — where a reconciliation question arrives by email and has to be answered the same day.
Field operations and asset services
Utilisation, jobs completed, cost per job and engineer productivity, assembled by hand from a scheduling system, a time system and the finance ledger — energy, utilities, maintenance, installation.
Regulated and public reporting
Where a figure has to be traceable to its source and the definition written down. We do the lineage and the documentation; we don’t sign off on compliance.
What stays the same in all of them: definitions agreed and written down first, the model built on systems you already pay for, logic readable by whoever comes after us. The industry changes the vocabulary, not the method.
What you end up with
One place with the numbers
Refreshed every morning before you're at your desk, covering the questions you actually ask in the weekly meeting rather than every metric that could exist.
A definition beside every metric
One line, in plain language: what's included, what's excluded, which source wins when two disagree. This is the artefact that stops the meeting arguments.
Readable logic
Queries and transformations somebody else can open and understand — so the reporting outlives whoever built it, including us.
A short handover
How it refreshes, what breaks it, how to add a channel. Thirty minutes recorded, not a 40-page document nobody opens.
See the one page that ends the argument about whose number is right
Sample definitions sheetCSV↓The artefact that stops the meeting arguments: one line per metric saying what is included, what is excluded, which source wins and who owns it. This is the first thing we agree and the last thing most reporting projects skip.
Seven metrics, two defensible definitions each
This is what “agreeing the definitions” means in practice. Every one of these has produced a meeting where two people were both right and the numbers still differed by double digits.
| Metric | One reading | The other reading | Typical gap |
|---|---|---|---|
| Units shipped | Dispatch scanned at the warehouse | Label created in the shipping system | 1–4% |
| Net revenue | Returns subtracted in the month of the sale | Returns subtracted in the month they arrive | 3–8% |
| Contribution margin | Fulfilment and payment fees included | Gross margin only, fees sit in overhead | 5–15pp |
| On-time dispatch | Against the promise shown to the customer | Against the internal cut-off time | 2–10pp |
| Return rate | By month of shipment | By month the return was received | 1–3pp |
| Active customer | Transacted inside the period | Holds an open contract or account | 5–20% |
| Resolved case or job | Closed in the operational system | Paid or settled in the ledger | 3–10pp |
Ranges are what we typically see, not a promise about your numbers. The point is not which reading is correct — both can be — but that it is written down once, and every report afterwards uses the same one.
The shape of a build
- 15–30 metrics, not two hundred — the ones the weekly meeting asks about
- 4–8 sources, a definitions sheet of about twenty lines
- A refresh before the working day, with failures alerting us rather than you
What breaks it, and what happens then
- A renamed column. The refresh fails loudly rather than returning a wrong slice quietly — that is a deliberate choice
- A new channel or warehouse. Added to the mapping; the historical series is restated so comparisons stay valid
- A changed definition. Written into the sheet with the date it changed, so a jump in a chart has an explanation attached
- An export that stops arriving. Detected the same morning, because the absence of a file is itself an alert
Hands for one build, not a replacement
Plenty of the companies we work with have analysts already. The problem is rarely capability — the team is mid-migration, or holding the platform together, and the commercial side has been waiting two quarters for one dashboard.
We take one defined build end to end, in your stack and to your conventions: model, definitions, tests, documentation. Your team reviews and owns it afterwards. No new tooling, and nothing depends on us continuing.
Contract and interim, stated plainly
Many reporting roles are advertised as six or twelve-month contracts, or as a first analyst hire that has been open for months. Both are cases where a fixed piece of work delivered now beats a role filled later.
A defined build, a fixed fee, an agreed end. If you then hire, the person arrives to documented definitions and readable logic instead of somebody else’s spreadsheet.
We don’t place people and we aren’t an agency. Our own work, invoiced as a project.
You do not have to start with the whole thing
- The weekly operations or trading report, automated end to end
- Definitions written down for the metrics it contains
- Refreshes itself; you keep the logic
- If it works, the rest of the build is the same thing repeated
- All the questions the weekly meeting actually asks
- Every metric defined, sourced and owned
- Daily refresh, monitored
- Recorded handover
Most teams start with the first one. It is the cheapest way to find out whether the bottleneck is really the reporting or the data underneath it — and if it is the data, we will say so and point you at the drift check instead of selling you a dashboard.
What you are risking, in full: the price is fixed in writing before anything starts and does not move; if the data turns out not to answer the question we stop in the first week and refund the balance; the model, the definitions and the documentation are yours, and nothing stops working if you stop paying. The smallest version of this is one report at $1,500 — about a week, and enough to find out whether the rest is worth doing. For the first three engagements that report is $750, paid after delivery. What we ask in exchange →
The full build is a band because the work genuinely varies: how many sources, how many metrics, whether the definitions already exist, how far back the history is restated, and whether the exports exist already. Which way each one moves it → The exact number is confirmed in writing before anything starts and does not move afterwards.
The arithmetic, with your numbers rather than ours
Whoever signs this will ask what it replaces. Here is the sum, laid out so you can put your own figures in it — you know your hourly cost and your hours; we don’t.
| What to count | Conservative | Common |
|---|---|---|
| Hours a week rebuilding the same report by hand | 3 | 6 |
| Working weeks a year | 45 | 45 |
| Hours a year spent on it | 135 | 270 |
| At a loaded cost of $45 an hour | $6,075 | $12,150 |
Against a build at $6,500, the conservative column pays it back inside the first year and the other one inside six months. Change the hourly figure to yours and the answer moves; the shape of it usually doesn’t, because the hours are the part people underestimate rather than the rate.
What this deliberately does not count. The decisions taken on a number that was wrong — the discount left running, the channel funded for another quarter, the stock ordered against a figure that had drifted. That is the larger cost and nobody can size it honestly in advance, so it is not in the table. If someone puts it in a business case for you, ask how they calculated it.
Two other things the table leaves out, in your favour and against it: the report stops being a person’s job, which is worth more than the hours if that person is your only analyst; and a build takes two to three weeks of your side’s attention too, mostly in agreeing what the numbers mean.
Keeping it alive is optional
New channels, changed formats, new questions: $600 per month, month to month. Or nothing at all, and you keep it yourself — that is what the handover is for. Full pricing →
When this isn't the thing you need
If the underlying data is wrong, reporting on it faster just spreads the error with more confidence. Start with a drift check or an order reconciliation — a week of that saves a quarter of arguing about dashboards.
If you need one answer, not a system, don't buy a build. That's a one-off analysis, and it's a fraction of the cost.
If the disagreement is political, not technical — two teams who want different numbers to be true — a dashboard won't settle it and we'd rather say so before starting.
The ones that come up
We were about to hire an analyst. Is this instead of that?
Often it's before that. A good analyst joining a company with no agreed definitions spends their first quarter doing exactly this work, under pressure, while also being asked for numbers daily. Having the foundation built and documented makes that hire land better — and sometimes makes it unnecessary for another year.
Do you work inside our BI tool or bring your own?
Yours. Adding a tool you'd have to learn and pay for on top of the work is how these projects become hostage situations. If you have nothing, we'll recommend the cheapest thing that fits, and it's usually free at your size.
What if our data lives in five places?
That's the normal case and it's the reason the definitions come first. Five sources with agreed rules for which one wins is a working model; five sources with no rules is the thing currently producing two different numbers.
Who owns what you build?
You do — the model, the queries, the documentation, all of it. No licence, no per-seat fee, nothing that stops working if you stop paying us.
Two lines by email. No form, no calendar link.
Which two systems, roughly what size, what you have already tried. You get a straight answer the same working day — including “this is not something we would help with”, when that is the honest one.
Two lines by email · no obligation · answered by the person who would do the work