February 20268 min readAutomation

The automation framework that saved 100+ hours

When I joined the operational risk team, KPI reporting was a monthly ordeal. An analyst would spend the better part of a week extracting data from three different systems, copying it into a master spreadsheet, applying a series of formulas, cross-checking the results against the previous month, and manually uploading the final numbers into the GRC platform. The process worked — in the sense that the numbers eventually got where they needed to go. But it was fragile, time-consuming, and error-prone. A single misplaced filter could cascade through 30+ KPIs. And because the process was manual, there was no audit trail beyond the analyst's memory of what they did. The automation framework I built replaced this end-to-end. It connects directly to source systems via their APIs, applies the business logic as Python transformations, validates the output against configurable rules, and pushes the results into the GRC platform automatically. But the interesting part was not the technology — it was the process of getting there. The first step was documentation. I sat with the analyst and recorded every click, every formula, every manual check. This produced a 40-step process map that nobody had ever written down. Half the steps turned out to be workarounds for upstream data quality issues. Fixing those issues upstream eliminated entire branches of the process. The second step was incremental automation. I did not build the full pipeline and deploy it. Instead, I automated one data extraction at a time, running it in parallel with the manual process for two months. This caught edge cases that no requirements document would have surfaced — month-end timing issues, quarterly adjustments, annual resets. The third step was trust-building. Even after the pipeline was fully automated, I kept the manual validation step for three more months. The analyst compared automated output against their manual calculations. When the numbers matched consistently, they gained confidence. When they diverged, we found bugs — both in my code and, occasionally, in the original spreadsheet logic. The result: 100+ hours saved per year, 100% on-time reporting (previously at risk every month), and a complete audit trail for every number. But the real value was freeing the analyst to do actual analysis instead of data wrangling.