Results distribution reduced from months to minutes
Governance pack production fully automated for all forums
Single source of truth replacing multiple conflicting versions
100%
audit trail coverage on all transformations
Automated end-to-end processing of an international investment bank's annual Anti-Financial Crime risk assessment, reducing results distribution from months to minutes and eliminating inconsistencies across governance forums. The platform delivered self-service Tableau dashboards with role-based access, fully automated governance pack generation, and complete audit trail coverage from raw survey response to reported score.
The Problem
Every year, the bank's Anti-Financial Crime (AFC) function runs a global risk assessment. Hundreds of respondents across regions, business lines, and legal entities answer roughly 100 questions covering sanctions, fraud, anti-money laundering, bribery and corruption, and tax evasion risk. The exercise determines where the bank focuses its AFC resources, what remediation programmes get funded, and what gets reported to regulators and the board.
The Solution
We automated the entire chain from raw survey responses through to governance-ready output, working across three layers: data architecture, processing pipelines, and a reporting platform with role-based access.
First, we designed a relational data model purpose-built for the assessment, accommodating year-on-year comparisons, respondent metadata, evolving scoring methodologies, and full audit trails on every transformation. We partnered with the bank's engineering team to implement the database structures and access controls, then built Python pipelines to ingest, clean, validate, and score responses. The ingestion layer used a metadata configuration to define question-to-risk-theme mappings, so when the survey structure changed between cycles, the pipeline adapted without code changes. Validation rules and scoring weights were held in configuration tables (not source code), meaning the risk team could own changes without a development dependency.
On top of the processing layer, we created Tableau dashboards giving leadership instant, self-service access to results: filterable by region, business line, legal entity, and risk theme. Row-level security was enforced at the database layer, so even exported data respected role permissions. Finally, we automated governance pack generation: a scheduled job pulled scored data, applied relevant filters for each forum, and produced formatted outputs. Because packs and dashboards drew from the same underlying data, the version-control problem was eliminated entirely.
Results and Impact
| Metric | Outcome |
|---|---|
| Distribution time | Reduced from months to minutes |
| Governance pack production | Fully automated for all forums |
| Data versions in circulation | One (previously multiple conflicting versions) |
| Audit trail coverage | 100% of transformations logged |
| Self-service dashboard access | Rolled out to AFC leadership across all regions |
| Analyst capacity freed | Weeks per cycle redirected from collation to risk advisory |
| Year-on-year comparability | Native; built into schema and scoring engine |
| Regulatory readiness | Traceable lineage from response to reported score |
Key Takeaways
-
Speed matters, but auditability matters more in risk functions. Every transformation, every score, every aggregation must be traceable. If you cannot explain to a regulator how a number was derived, the number is worthless regardless of how quickly you produced it.
-
Automating the mechanical work unlocks time for judgement. The team's expertise was in risk analysis and advisory, not copying data between spreadsheets. Removing that burden gave them back weeks per cycle for work that actually required human thought.
-
One source of truth is not just a data principle; it is a governance requirement. When different forums see different numbers, the conversation shifts from "what should we do about this risk" to "which version is correct". Eliminating that debate was one of the highest-value outcomes.