Context
O2's contact-center telemetry lived in a Genesys Infomart data warehouse — a sprawling star schema recording every call, queue, and agent interaction. Afiniti's AI routing sat downstream of it: the models needed a clean, reliable feed of call data to decide which agent should take which caller. The warehouse wasn't designed for that consumer.
The problem
The routing feed was assembled from many star schema tables, each with its own quirks, timing, and failure modes. Every fragile join was a way for the feed to silently drift from reality — and because Afiniti's revenue on the account was tied to measured routing performance, a broken feed didn't just mean a bad dashboard. It meant real money, for both sides.
What I built
I redesigned the warehouse's consumption layer, consolidating the star schema tables into a single unified calls feed purpose-built for the routing models. One feed, one contract, one place to enforce quality. The redesign had a hard constraint: the routing engine consuming it could never notice the switch. We reconciled the new feed against the old assembly line-by-line before cutover, and client revenue came through at 100%.
The same period included two adjacent builds on sister accounts:
- Leading the integration of Cisco PQ-based routing with Afiniti's systems on Virgin Media — an integration that, had it gone wrong, put roughly 80% of the account's monthly revenue at risk.
- An invoice reconciliation framework for Virgin Media, so the numbers on the invoice could be traced to the numbers in the warehouse — accurate financial documentation, paid on time.
- Automated BI dashboards (Python + Apache Superset) tracking FCR, AHT, conversion, churn, and agent performance, plus automated email alerts that delivered KPI movements to senior stakeholders — removing about three days of manual effort across three team members.
What made it hard
Nothing about the schema was the hard part. The hard part was that the system had to be rebuilt while it was running, under a revenue guarantee, for a client who would reasonably interpret any anomaly as a billing question. That forces a certain engineering style: reconcile everything, automate the checks, and never make the client discover a problem before you do.
Outcome
A single, trustworthy calls feed powering AI routing on a major telecom account, revenue fully preserved through the transition, and a reporting layer that pushed insights to stakeholders instead of waiting to be asked. The unified-feed pattern outlived the project — it's simply a better shape for any warehouse that feeds a model.