Case study · Banking · BI & Analytics + Legacy migration

Three stages off an on-prem warehouse — every figure walkable back to a Bronze event.

How an Icelandic investment bank went from scattered per-company reporting to a governed Azure lakehouse over roughly 33 months: a warehouse, then a lake, then the migration that retired the old one. It survived an audit. Numbers that hold up.

The client & the project

A bank that is also a group.

Kvika banki is an Icelandic investment bank and financial services group, operating across investment banking, asset management, commercial banking and insurance, and listed on Nasdaq Iceland since 2019. In 2022, Kvika acquired 40% of Moberg — so this is work we did for a client who then bought into the firm, which is one way to read a customer-satisfaction survey.

A group means many companies, each with its own systems and its own version of the numbers. The engagement was a three-stage data journey, each stage a project in its own right: first a data warehouse for consolidated financial reporting, then a governed data lake for everything, then the migration that switched the old on-prem SQL Server warehouse off for good.

The solution

Warehouse, then lake, then goodbye SQL Server.

Stage 1 — the warehouse. Nine months, five FTEs. Data from multiple group companies and systems combined into one model for consolidated financial reporting, built on Azure Synapse Analytics (Dedicated SQL Pool) with PySpark notebooks for transformation and Azure Data Lake Storage as the staging layer. The goal was unglamorous and valuable: one set of group figures instead of several competing ones.

Stage 2 — the lake. Twelve months, five FTEs. A Medallion-architecture data lake — Bronze, Silver, Gold — holding 10+ TB across all companies and systems, on ADLS with Synapse Spark pools for processing, Azure Data Factory for ingestion, and Microsoft Purview for governance. The layering is the point: raw events land in Bronze untouched, so every Gold figure can be walked back to the Bronze event that produced it. When the auditors came, that lineage did the talking.

Stage 3 — the migration. Twelve months, five FTEs. The on-prem SQL Server data warehouse retired in favour of the Azure data platform — a lakehouse architecture with Power BI on top for reporting, and Azure Data Factory handling ETL and the migration itself. Migrations are where data platforms go to stall; this one shipped because stages 1 and 2 had already built the destination.

The challenges

The honest section.

Consolidation

Many companies, many systems

Each group company kept its books in its own systems — reconciling them into one consolidated view was the core of stage 1, not a footnote.

Scale with governance

10+ TB, all of it accountable

A lake of that size is easy to fill and hard to govern; Purview and the Medallion layering had to be there from day one, not retrofitted.

Live migration

Reporting can't take a gap month

The on-prem warehouse fed real financial reporting throughout the migration — the switch-over had to be provable, not hopeful.

Audit-grade lineage

Every figure, walkable

Bank reporting gets audited. The bar wasn't "the numbers look right" — it was "show me where this number came from."

The value

One set of numbers, and proof of where they came from.

The business outcome is consolidated financial reporting the group can rely on: figures produced from one governed platform instead of stitched together per company, with every Gold-layer number traceable back to the Bronze event it came from. That traceability was tested the way it should be — the platform survived audit.

The economics held up too. Measured in year one, the stages returned 80%, 83% and 57% ROI respectively — the migration stage naturally lower, since its return is partly the ongoing cost of the on-prem estate that no longer exists. Retiring a legacy warehouse is not the exciting part of a data strategy, but it is the part that stops paying rent on the past. Launch day is the easiest day; the next ten years are the product — and this platform was built for the ten years.

KPIs & numbers

What the engagement measures as.

10+ TB
governed data across all group companies and systems
80%
year-one ROI — stage 1, the data warehouse
83%
year-one ROI — stage 2, the Medallion data lake
57%
year-one ROI — stage 3, the migration off on-prem
3 stages
~33 months total, each stage a shipped project
Bronze→Gold
every reported figure traceable to its source event — audit passed
Under the hood

The stack on this one.

Analytics platform

Azure Synapse Analytics

Dedicated SQL Pool for the warehouse; Spark pools for lake processing.

Storage

Azure Data Lake Storage

Staging in stage 1; the Bronze/Silver/Gold layers of the lake from stage 2 on.

Orchestration

Azure Data Factory

Ingestion into the lake, and the ETL that carried the migration.

Transformation

PySpark

Notebook-based transformations from raw events to reporting-ready tables.

Governance

Microsoft Purview

Cataloguing and lineage across 10+ TB — the audit trail, literally.

Reporting

Power BI

Group financial reporting on top of the lakehouse.

← All stories

Get in Touch