TopN Analytics
Success Story

Foundational Data Platform for a Multi-Tenant EV Charging Network

A leading eMSP (e-Mobility Service Provider) operating a SaaS platform that aggregates EV fleet operators and charge point operators (CPOs) under one unified charging network.

Challenge

Where things stood

An eMSP aggregating dozens of CPO and fleet partners generates operational data across many core entities — charging stations, transactions, users, wallets, tariffs, settlements — in a live transactional database, and building analytics directly on top of it isn't viable at scale.

A bespoke extraction script per table doesn't scale either — as the partner network and reporting needs grow, each new table would mean new, one-off pipeline code, increasing time-to-deliver and the risk of inconsistent incremental loading, schema handling, and failure recovery.

Architecture

What we built

PostgreSQL (OLTP) and Timescale (event/telemetry logs) feed Apache Airflow, GitOps-deployed on AWS EKS/ECR.

A generic sync engine handles schema synchronization, chunked extraction, staging and merge loading, validation, and checkpointing uniformly, replicating into Google BigQuery for downstream dashboards and reporting.

Configurable incremental vs. full-load logic and configurable live/daily/weekly refresh windows are selected per table, with automatic schema drift handling and Slack-based failure alerting integrated into every pipeline run.

Solution

How it works

TopN Analytics designed and built a generic, configuration-driven synchronization engine that replicates operational PostgreSQL/Timescale tables into Google BigQuery. Instead of writing new pipeline code for each table, engineers add a configuration entry and the engine handles the rest.

This framework now powers over 35 individual data pipelines covering the platform's core entities, including at least one running on a 30-minute near-real-time cadence for high-priority transactional data.

Key Takeaways

What we delivered and learned

The framework's value shows up in what it enabled elsewhere: every other analytics capability in this portfolio — charger uptime monitoring, transaction failure classification, settlement calculations, fleet allocation tracking — depends on data that arrives through this same reusable pipeline pattern rather than bespoke, one-off extraction code.

Tech Stack

What it's built on

PythonAirflowPostgreSQLBigQueryAWSTimescaleGitHub ActionsSlack

Want the full picture?

We're happy to walk through the details, numbers, and trade-offs directly.