A 31-KPI weekly report only certain staff could build, with numbers nobody could trace
The marketing team manages 13 Meta ad accounts. Before every weekly operations meeting, someone had to build 6 sub-reports covering 31 KPIs by hand. The problem wasn't only the time: every step was scripts run by hand and copy and paste, only certain staff knew how to do it, and when numbers didn't match nobody could say which fields they came from.
- Client
- Dental group in northern Taiwan · 35 branches
- Scope
- Report automation
- Key result
- 31 KPIs in one click
The problems we found
- Every week someone ran scripts by hand, copied spreadsheets, exported CSVs and pasted them back. Any step could go wrong
- 6 sub-reports and 31 KPIs, with data from the ad platforms, customer service logs and doctor schedules
- When numbers didn't match, nobody could say which fields and rules a given KPI was calculated from
What we changed
- Data first: ad APIs write straight into the database, all 13 accounts sync in one run, and re-running it never corrupts the data
- Safe cutover: old and new systems ran side by side for 4 weeks with a cell-by-cell comparison (tolerance ±1). The old process was retired only after the numbers matched
- A 100-item acceptance checklist signed off item by item, with a full operations manual and a tool for backfilling historical data
- One-click weekly report: 7 automated steps handle the import and all 6 sub-reports, and every KPI has traceable data lineage
Results
- Weekly manual reporting → one click, no longer dependent on specific staff
- All 31 KPIs have documented formulas, and every number can be traced to its source
- About 700 automated tests continuously protect the whole pipeline
The hardest part of automation isn't writing the code. It's getting the owner confident enough to switch off the old process. Four weeks of parallel runs and cell-by-cell comparison earned that trust.
Can every number in your weekly report be traced to its source?
Start with a free 30-minute call about how the work runs today, and we'll judge whether a closer look is worthwhile. Finding where it really gets stuck means looking at the actual workflow.