Barathwaj Maadhavan
AI Engineer · Forward Deployed Engineer
Audit Reporting Automation & Cost Optimization
Primary developer – replaced a paid third-party reporting tool with an internally built automated solution.
Overview
This project was undertaken to replace a paid third-party reporting solution, BusinessObjects, that was being used to generate daily audit reports for multiple clients.
Each client had numerous data-processing jobs running on a scheduled batch system, where input files were received, processed, and either stored in database tables or transformed into output files delivered to the client. To monitor the health and completeness of these processes, detailed audit information was captured in audit tables — including the jobs that ran on a particular day, files received and processed, input and output record counts, rejected records, missing files, and other operational metrics.
Previously, the Production Support Engineering team had to manually run BusinessObjects at the end of each day to generate these reports, which were then reviewed internally and shared with the respective client data teams for validation and issue investigation. The reports also contained several calculations and business rules used to derive the required audit metrics.
Since the organisation was paying for BusinessObjects specifically for this reporting functionality, we identified an opportunity to eliminate the third-party dependency and build an equivalent solution internally.
The Challenge
The existing process had two significant drawbacks:
- Cost — the company was paying for a third-party tool used solely for this reporting use case.
- Manual dependency — the Production Support Engineering team had to run the tool manually every day, adding operational overhead.
The added complexity was that the BusinessObjects reports contained embedded business logic and calculations that were not documented — they had to be reverse-engineered before they could be rebuilt.
What I Built
As the primary developer, I took ownership of reverse-engineering the existing BusinessObjects reporting logic, understanding the underlying audit tables and calculations, and rebuilding the entire reporting workflow in Python.
The solution I developed:
- Directly consumed the raw audit data from the audit tables.
- Applied the required business logic and calculations to derive the audit metrics.
- Generated the complete daily audit report — eliminating the need for the Production Support Engineering team to manually execute the third-party process.
Automated Anomaly Identification
In addition to generating the report, the solution introduced automated anomaly detection. When predefined issues or unusual conditions were detected in the audit data, they were highlighted directly in the body of an automated email sent to the Production Support Engineering team lead. This allowed the team to quickly identify areas requiring investigation. The complete audit report was included as an attachment, which the support engineering team could review and forward to the relevant client data team.
Scaling Across Clients
I initially developed and validated the solution for one client. After establishing that the Python implementation correctly reproduced the required reporting logic, the solution was expanded to three additional clients with the support of one or two junior engineers working with me. I provided the core logic and direction while helping replicate and adapt the implementation for additional client-specific requirements.
Results & Impact
- Eliminated third-party dependency — removed the need for paid BusinessObjects licences for this use case, creating a direct cost saving and positively impacting the company's bottom line.
- Fully automated — replaced a manual daily reporting process with an automated pipeline.
- Standardised reporting — consistent generation of daily audit reports across all clients.
- Improved anomaly visibility — automated highlighting of issues directly in email notifications.
- Scaled to four clients — validated on one client before expanding, with mentorship of junior engineers.
Key Learnings
This project reinforced that the most valuable automation work often comes from replacing paid dependencies with well-understood internal solutions. Reverse-engineering undocumented business logic taught me to be methodical and to validate every assumption before rebuilding. I also learned the importance of building for scale from the start — designing the core logic so it could be adapted by others, rather than building a one-off solution for a single client.