Back to portfolio

Case study

Legacy risk platform to real-time Azure analytics.

A major Swiss re-insurance group (client name protected under NDA)

Single senior engineer embedded with the client’s risk IT group to migrate batch analytics to Azure and deliver dashboards analysts would actually use — measured by batch runtime, daily row throughput, and adoption.

Context

running legacy on-prem risk analytics that couldn’t scale with growing regulatory demands. Batch jobs ran 14+ hours, meaning analysts waited until the next business day for updated risk positions. FINMA was pressuring the group to improve reporting granularity across its reinsurance book.

Challenge

  • Batch processing exceeding 14 hours on the legacy platform
  • Analysts blocked until next day for updated risk positions
  • FINMA pressure to improve reporting granularity and transparency

Solution

Migrated the analytics stack to Azure (fully Terraform-provisioned infrastructure). Re-engineered the heaviest data pipelines in Python with Polars and pandas, replacing stored procedures that had accumulated over a decade. Built real-time KPI dashboards in Grafana, replacing Excel-based reporting that had been the de-facto standard for underwriting and exposure teams.

Engagement

Duration
22 weeks
Team
1 senior engineer embedded full-time
Model
Embedded in client risk IT squad; paired with internal data engineer from week 6

Timeline

  1. Weeks 1–4

    Legacy assessment & target architecture

    Profiled overnight batch jobs, identified Polars candidates vs. SQL-only paths, and drafted Terraform modules for dev/staging/prod parity.

  2. Weeks 5–12

    Pipeline re-engineering

    Replaced longest-running stored procedures with Polars pipelines. Introduced incremental loads and partition pruning on 2.4B daily rows.

  3. Weeks 13–18

    Grafana dashboards & FINMA views

    Co-designed KPIs with underwriting leads. Shipped role-based dashboards replacing Excel extracts; tracked weekly active users as adoption proxy.

  4. Weeks 19–22

    Cutover & cost optimisation

    Blue/green cutover with rollback window. Rightsized Azure SKUs; documented CHF 180K projected annual savings vs. on-prem run rate.

Measured outcomes

  • Nightly batch window reduced from 14 hours to 38 minutes on equivalent data volumes.
  • Daily pipeline throughput sustained at 2.4B rows with incremental load strategy.
  • Dashboard weekly active users reached roughly 3× the legacy Excel workflow baseline within eight weeks of launch.
  • Infrastructure run-rate reduced by approximately CHF 180K annually after rightsizing and reserved capacity.

Exhibit 2

Risk analytics moved from overnight batch dependency to intraday availability.

Primary operating measures from the migration cutover. Adoption is shown as an index because the absolute user count is client-confidential.

Primary batch window
14h → 38min
Equivalent risk aggregation load
Run-rate reduction
~CHF 180K / yr
Rightsizing and reserved capacity

Nightly risk aggregation

intraday reruns feasible

Normalized index

On-prem batch

14 hours

100

Polars pipeline

38 minutes

5

Analyst dashboard usage

tracked as weekly active use

Normalized index

Excel baseline

1.0×

33

Eight weeks post-launch

~3.0×

100

Source Pipeline telemetry, Grafana usage logs, and finance run-rate model; NDA-safe aggregate.

Control FINMA-facing views carried freshness timestamps and pipeline version identifiers after cutover.

Governance & compliance

  • Production changes via PR-reviewed Terraform and CI/CD; no manual console changes in prod.
  • FINMA-facing reports tagged with data freshness timestamps and pipeline version identifiers.
  • Secrets and connection strings in Azure Key Vault; no credentials in application repos.