Two of your systems disagree.
We find out which number is right.
Reporting that keeps the numbers true, and checks that find where two systems stopped agreeing.
Two lines by email · no obligation · answered by the person who would do the work
Which of these is you?
Pick the one that matches your week.
The numbers themselves
Data work — any industry, anywhere several systems hold one metric.
Right the day it was built. Then a definition drifts and nobody trusts the file.
Reporting →One question, answered from data you already have. Margin by channel, why returns moved.
One-off analysis →Hiring frozen, mid-migration, or simply more demand than two people absorb.
Hands for one build →Two systems that stopped agreeing
Operational checks — needs a warehouse, a 3PL or a retailer in the picture.
The count finds the variance and stops there. The same SKUs drift again next quarter.
Inventory drift →Payment cleared, fulfilment never heard of it, and nothing says so until the customer asks.
Orders & returns →Billed from system events, not from your contract. Nobody reopens the rate card.
Invoices →Each one small, each one arguable, and the window to argue closes in 90 days.
Retail deductions →Two kinds of output, both shown before you ask
Reporting: the definitions, written down first
| Metric | One reading | The other | Gap |
|---|---|---|---|
| Net revenue | Returns in the month of sale | Month they arrive | 3–8% |
| Margin | Fulfilment and fees included | Fees in overhead | 5–15pp |
| On-time | Against the customer promise | Internal cut-off | 2–10pp |
Both readings are defensible. The build starts by choosing one and writing it down. What a build contains →
Checks: the console output, warnings included
Sample files, not client data — the same script that runs on real exports. The full run →
Three things you can do right now without writing to anyone
Run the check on your own export
Orders against shipments, in your browser tab. Nothing uploaded, no account, no email asked — and the list of paid orders with no shipment is yours whether or not we ever speak. Run it →
Watch a check argue with its own result
Five demos on sample files, including the one that refuses to print a number when the key match is too low. That refusal is the part worth watching. See one run →
Download what you would actually receive
The findings file from a check, and the definitions sheet from a reporting build. Real columns, sample data, no form in front of them. Definitions sheet →
Published prices, fixed scope
- Runs locally, nothing uploaded
- Paid orders with no shipment against them
- The output is yours to keep
- Full reporting build from $6,500, typically $6,500–12,000
- A one-off analysis, one question answered: $1,800
- What moves the band is published, not discovered later
- Three months of data, not a sample
- Line-by-line findings with amounts
- Written method, so it's repeatable without us
- Checks run every morning, exceptions in your inbox
- Reporting kept current as definitions change
- Month to month, no lock-in
Invoice and deduction work is priced on what comes back. For 3PL invoice audits and retailer deductions we take a share of what's actually recovered. Nothing recovered, nothing owed — details on the pricing page.
The first three pieces of work are half price, and you pay after delivery.
Not a launch promotion. A trade: we need work we are allowed to describe, you need a reason to go first. Both sides of it are written below, including the part that is our problem.
Half price on the first piece
One report, done properly: $1,500 → $750. Any single check: $1,200–1,600 → half of it. Everything afterwards is at the published price — there is no introductory rate that quietly expires.
Nothing upfront, and nothing owed if it is wrong
You pay when the output is in your hands and it is what was agreed in writing. If it is not, you do not pay. At $750 that is also small enough to approve without asking anyone, which is the real obstacle more often than the money.
What we get: permission to describe it
With your name or anonymised — your choice — and you read and approve the text before it goes anywhere. The agreement is to describe the work honestly, not to praise it: if the finding was “the leak was tiny and not worth chasing”, that is what gets written.
Three places, and none of them taken yet. Stated plainly rather than dressed up as a countdown. Three is the honest number: at that price it is roughly a month of capacity, and pretending otherwise would be the sort of number this whole site exists to argue against.
One hour, 43 orders, 42 of them never shipped
One public dataset shows both sides of the seam at once — a retailer’s orders against what the warehouse shipped. We measured it rather than guessing.
of orders vanished between the two systems — paid for, never shipped, never flagged
orders in the worst hour, across 42 different products. Stock doesn't run out on 42 products in the same hour
of order lines in a real warehouse export where two internal systems wrote the same shoe size as 105 and 10.5
We don’t have client logos. We have measurements. The first two come from Mendeley Data, “E-Commerce Dataset” — 50,231 mature orders from a real retailer, both sides of the seam visible, measured with the same script we run on client files. The third comes from a footwear manufacturer’s WMS export, 122,370 order lines against 215,192 picking records. Open either one and check us. How we measured, in full →
The reporting side has nothing equivalent to measure, and we won’t invent it. No public dataset holds one company’s two conflicting definitions of the same metric. What we publish instead is the artefact itself — a definitions sheet you can download — and the typical size of the disagreement: 3–8% on net revenue, 5–15pp on margin.
“You have no client list.”
Correct, and a logo wall would be the easiest thing on this site to fake. It would also be the first untrue thing in a relationship that runs entirely on whether you can trust a number we hand you.
So the honest question is what you can inspect instead, before paying anything. Four things, all of them on this site right now.
If you would rather not be early with a supplier, that is a reasonable position and worth saying now rather than in week three.
- The method, written out. Including the exact cases where the tooling refuses to produce a number at all. Read it and decide whether it is what you would have done.
- Three public datasets, measured. Same script we run on client files, sources linked so you can rerun them and check us. The working.
- Five demos on sample files — including the one that shows the check refusing to answer when the key is bad, which is the part nobody puts on a website.
- The money moved to our side. Price fixed in writing before the start; if the data turns out not to answer the question we stop in week one and refund the balance; you own the output either way. All of it.
Two shapes. What changes is inside them.
Neither is improvised. What differs company to company is named up front and agreed in writing before anything starts — not discovered in week three.
A reporting build
Two to three weeks. What differs: how many sources, how many metrics, and whether the definitions already exist.
The definitions get decided first
Which orders count as fulfilled, when a return lands, which source wins when two disagree. One written line each — the artefact that ends the meeting argument.
The model is built on what you already pay for
Power BI, Looker Studio, Metabase, a warehouse you have, or scheduled exports. No new licences, your conventions, your team reviews it.
It refreshes, and the logic stays readable
Before the working day, failing loudly rather than returning a wrong slice quietly. Recorded handover, so it outlives whoever built it — including us.
A check
What differs: which two files, which shared reference joins them, and what has to be excluded before the number means anything.
You export two files
Orders and shipments, system stock and counted stock, invoices and the rate card, deductions and your ASN. Producing them is the easy part.
The match runs event by event, not total by total
Totals tell you a gap exists. Events carry a timestamp, so the divergence gets a day, a type and a size — which is the difference between “we are 1,284 units short” and “this started on 3 February, on purchase orders closed late, and has recurred since”.
You get a list, with the evidence attached
Line by line: what each side says, the difference, the money, and — where it applies — the contract clause or deduction code to quote.
Every exclusion and every case where we refuse to produce a number is written out on the method page.
When not to hire us
- Your stack is genuinely clean. The free check tells you that in fifteen minutes, and that’s a fine outcome.
- Everything lives in one system. No seam, no gap, nothing to find.
- The data underneath is wrong. Reporting on it faster spreads the error with more confidence — we will say so rather than take the larger job.
- Under roughly $2M and doing it all yourself. The gap is real at your size too, but a few hundred dollars a month doesn’t pay for the work.
Two lines by email. There is no form and no calendar link.
Which two systems, roughly what size, what you have already tried. The button fills those three in; two lines of answer is enough. Then fifteen minutes on your screen, then scope and price in writing — the prices are already published, so that step confirms rather than negotiates.
Two lines by email · no obligation · answered by the person who would do the work