Our monthly advertising report shows, next to each number, how far it can be trusted
Our own system · 2026 Q3
The situation
Our monthly advertising report was a Hungarian template of seven sections of tables, filled in by hand.
What it looked like
It asked whether conversion tracking had changed, but only on the last page, after the first page had printed the headline return on ad spend. It assumed every client runs Google Ads and Meta, and its total summed ratios across platforms whose attribution overlaps.
What was actually true
One client’s real month shaped the design. A reported fault in the purchase tracking did not show in the monthly figures, and our check could neither confirm nor rule it out. So a report cannot detect such a fault; someone has to declare it. Second, the obvious way to fill the purchases row also counted actions that were not purchases. It gave a wrong cost per purchase, with nothing flagged.
How we found it
We pulled the figures live instead of trusting stored settings, which pointed at the wrong ad account. The expired Meta connection, once replaced with one that does not expire, still returned no purchases. We corrected our explanation of why three times, the last time before the brief went to a developer.
What changed
Every number now carries a trust state, shown at the number. A known-broken signal hides its figure, and an unconfirmed one prints with a marker. The state passes to every figure calculated from it. With none declared, the report refuses the headline. Platform sections appear only where used, the total adds only what adds up, the 15% rule fires once, and each figure shows its window and pull date.
Where it ended
The method is finished and merged. The client’s report is paused: it would print honestly but thin until an order export tests the purchase signal.
What we did not claim
That the reported fault was real, or that it was not; the declaration says unconfirmed. Our code checks now have to prove they can fail, and 15 of 16 do. Nothing yet checks a finished report.
Why it matters beyond this case
Trust state is declared, never inferred. A detector cannot find a broken signal, because a broken purchase tag produces a number sitting perfectly between last month and next.