Work / Case study
$14,249,840 reconciled. One database.
Our own performance-marketing group ran on 877 export files spread across 8+ platforms in iGaming and consumer loans. Nobody could verify the combined totals. We pulled them into one deduplicated master database, built and tested like software.
- Client
- Our own marketing group
- Verticals
- iGaming · consumer loans
- Stack
- Python · test-covered pipeline
- Status
- Internal platform, in production
Performance marketing leaves traces everywhere. Every platform exports its own version of the truth in its own format, and for our own marketing group that came to 877 raw files from 8+ platforms, spread across iGaming and consumer loans in 10 markets. The totals never agreed: the same user sat in two systems, the same conversion was counted twice, and revenue looked bigger than it was.
Concretely, the same conversion was counted in both the tracking tool and the email platform, and users who moved between iGaming and consumer loans were recorded as two. We knew that somewhere in the maths we were paying for the same results twice. We just didn't know where, or how much.
The default answer is a spreadsheet that stitches the numbers together by hand once a month. But a spreadsheet can't be tested, and a report nobody can re-run is really just a rumour. When you move budget on figures that are 1.7% too high, you move it to the wrong place.
We wanted numbers we could rebuild on command, trace back to the individual raw file, and test like any other code. In short, a master database that behaves like software, not a shared folder full of export files.
We built a pipeline that reads all 877 raw files and merges them into one deduplicated master database. The work sat in three places:
- Ingestion: 8+ platforms means 8+ formats. A tracking tool and an email platform don't agree on what a “user” or a “conversion” is, so every mapping is explicit and tested. Each source got its own parser with schema checks, so a renamed column header halts the load instead of quietly poisoning the database.
- Deduplication and reconciliation: the pipeline found 84,726 users appearing across verticals and corrected ~1.7% revenue inflation from 826k duplicate events. It also surfaced $2.79M + $3.22M in previously invisible revenue, sitting in silos the old reporting never saw.
- Testing and rebuild: the test suite grew from 59 to 490 automated tests, all green, and a red test blocks the merge. The whole master database of 15.5M rows rebuilds from raw source files in ~10 minutes, so the numbers never depend on a state no one can reproduce. The rebuild doubles as our backup: the source files are the truth, and the database can always be regenerated from them.
The result is a single source of truth where every number traces back to the raw file it came from. No monthly manual assembly, no spreadsheet quietly drifting from reality.
What makes it software is the discipline around it. The pipeline lives in version control, every change runs the 490 tests in CI, and the reconciliation report is regenerated on every run. When a number starts to move, we can see exactly when and in which source, before it ends up in a decision.
Same raw sources in. Same database out.
The numbers below are the pipeline's current output, regenerated from the 877 raw source files on every run and covered by the full test suite. None of them are typed in by hand.
2,490,766
users unified from 8+ platforms
$14,249,840
revenue reconciled
13,377,929
events in the master database
59 → 490
automated tests, all green
84,726
cross-vertical overlap users
~10 min
full rebuild of 15.5M rows
Numbers no one can verify?
We can build the same single source of truth on your data. Audit first, fixed price.