May 26, 2026 · 3 min read
Automation is 25% coding, 75% cleaning
Every automation project I've shipped has hit the same wall.
Not in the code. In the mess that was there before the code.
I used to scope projects by the logic. Parse this email. Match this record. Route this event. The architecture felt clean. The scope felt clear.
Then you hit the actual data. Supplier names in six different formats. Order numbers with trailing spaces. Date fields stored as strings in three different timezones. Vendor emails that rotate between two domains for the same company. None of that is in the requirements doc. All of it is in the exports.
The number nobody quotes
My rough split, across every project I've shipped: 25% is building the automation. 75% is making the data ready for it.
That's not a complaint. It's a design constraint. If you don't budget for the 75%, you build something that technically works and practically doesn't. It runs clean in staging and breaks the first Tuesday it touches production.
The firms that get the most out of automation are the ones that audit what they've actually got before they spec what they want. Not what they think they've got — what the raw exports show when you sort by anomaly.
What's in old logs
The most useful thing I've done in the last two years isn't building new pipelines. It's mining old ones.
Pulling troubleshooting logs from 2023 and 2024. Old Power Automate flows nobody touches. Teams notifications that fire into channels nobody reads. On the surface, noise. Underneath, institutional memory.
A timeout that fires every time a specific supplier sends a PDF with a scanner artifact. A format flag that trips every Thursday afternoon because payroll exports then and the column order shifts. A lookup that fails silently on any name with an accented character because someone hardcoded ASCII.
You can't know that from a requirements conversation. You can only find it by looking at what the system actually hit — and building the next system with that friction already accounted for.
Why this matters if you're adding AI
If you're layering AI into your workflow, dirty data isn't just a nuisance. It's alignment risk.
A model grounded in your company's actual data will make decisions shaped by whatever is in that data — including the noise, the bad entries, the one-offs nobody cleaned up. Getting the data right before the model sees it isn't overhead. It's the project.
The automation doesn't break because the logic was wrong. It breaks because the data was never what anyone assumed it was.