Skip to content

Real estate

A data warehouse with a memory, for a real estate group

Design and delivery of the corporate data warehouse on PostgreSQL and Laravel, with SCD type 2 historisation and a second-phase exploitation layer for dashboards.

Client
Real estate group (anonymised)
Year
2024
Abstract illustration of a layered data warehouse with timelines
SCD 2
versioned history on every dimension
1 source
of truth for the whole organisation
2 phases
scoped and priced as a closed proposal

Where it started

The group ran with information spread across the management system, several departmental spreadsheets and manual exports. Each area had its own reports and its own definitions, so two documents covering the same period could show different numbers with nobody able to say which was right.

The most expensive problem was not the time spent assembling reports, considerable as it was, but the absence of history: when a value changed in the source system, what it said before disappeared. There was no way to answer "how did this look in March" other than hoping somebody had saved a copy.

What we did

We started from the business questions, not the tables. Together with management we defined the set of indicators that had to be answerable every month, and only then designed the dimensional model that supports them.

  • Dimensional model on PostgreSQL with slowly changing dimensions of type 2, so every modification preserves the previous version with its validity dates.
  • Scheduled load processes from the source systems, with quality validation and traceability back to the origin of each figure.
  • Laravel backbone for orchestration, load control and the data access layer.
  • Database server administration: PostgreSQL in Docker containers, backups with a tested restore, and automated deployment for every new load.
  • Second exploitation phase: per-area dashboards built on the model, with each metric’s definition written next to the number.

How it was structured commercially

The project was proposed and closed end to end as a technical and commercial proposal in two phases: first the model and historical load, then the exploitation layer. That let the client validate the value of phase one before committing to phase two.

What changed

  • Month-end stopped being an argument about which number is correct.
  • Any question about the past is answered from the history, without depending on stray copies.
  • New questions from management are answered with a query against the model instead of a bespoke development.

Next step

Half an hour well spent

Walk us through the problem on a short call. You leave with a first read on how we'd approach it and what it would involve — no commitment, no sales deck.