Skip to content

LLM ready

/en/portfolio/financial-normalization.md

Title:
Financial data normalization

Financial data normalization

Service that normalizes the heterogeneous financial data of the real estate developers served by Liquid AI, more than 20 active datasets. Each developer's rule enters as an adapter in a hexagonal architecture, not as a branch in the core. Cut the prep of a dataset from about five days to up to 30 minutes, protected by more than 4,800 test cases.

Problem

Each real estate developer delivers financial data in its own format, and manual normalization cannot keep up with the number of active datasets.

Decisions

Domain-Driven Design with hexagonal architecture, so each developer's rule enters as an adapter and not as a branch in the core. Single-purpose Python API, with the frontend in a separate repository.

Outcome

In production at Liquid AI, over the datasets of more than 20 real estate developers. The interval between receiving a dataset and delivering it pre-normalized into the pipeline dropped from about five days to up to 30 minutes, and a suite of more than 4,800 test cases (unit, integration, regression and parity) protects every transformation change against silent breakage. The code and the developer names are not public.

---
title: Financial data normalization
url: https://nandomoreira.dev/en/portfolio/financial-normalization
collection: portfolio
tech:
  - Python
  - DDD
  - Arquitetura hexagonal
date: 2025-03-01
---

# Financial data normalization

Service that normalizes the heterogeneous financial data of the real estate developers served by Liquid AI, more than 20 active datasets. Each developer's rule enters as an adapter in a hexagonal architecture, not as a branch in the core. Cut the prep of a dataset from about five days to up to 30 minutes, protected by more than 4,800 test cases.

## Problem

Each real estate developer delivers financial data in its own format,
and manual normalization cannot keep up with the number of active
datasets.

## Decisions

Domain-Driven Design with hexagonal architecture, so each developer's
rule enters as an adapter and not as a branch in the core. Single-purpose
Python API, with the frontend in a separate repository.

## Outcome

In production at Liquid AI, over the datasets of more than 20 real
estate developers. The interval between receiving a dataset and
delivering it pre-normalized into the pipeline dropped from about five
days to up to 30 minutes, and a suite of more than 4,800 test cases
(unit, integration, regression and parity) protects every transformation
change against silent breakage. The code and the developer names are
not public.

Ready to share.