Case Study

How a Mobility Platform Solved the CO2 Reporting Obligation with Automated Reports

September 10, 202411 min read
How a Mobility Platform Solved the CO2 Reporting Obligation with Automated Reports

As of July 1, 2024, organizations with 100 or more employees in the Netherlands are required to report their CO2 emissions from work-related mobility. For our client's mobility platform, which combines data from 150+ providers, this meant an enormous operational challenge: hundreds of clients, all needing a report, every quarter.

The challenge: data from 150+ sources

The platform manages mobility data from hundreds of companies. That data comes from leasing companies, public transport providers, bike plans, car-sharing platforms, and work-from-home registrations. Each source delivers data in its own format, at its own frequency, and with its own definition of what constitutes "a trip."

Manually combining and calculating CO2 emissions took the team three to four working days per client, per quarter. With 45 clients, that's 180 person-days per year just for reporting. And every time someone manually copies data, errors creep in. Wrong emission factors, duplicate trips, missing remote work days.

With the new reporting obligation and a growing client base, this had to fundamentally change. Manual was no longer an option.

The CO2 calculation problem

Calculating CO2 emissions sounds simple: kilometers times emission factor. In practice, it's considerably more complex. A lease car has a specific CO2 emission per kilometer that depends on the model, build year, and fuel type. An electric car has a different emission factor than a hybrid. Public transport emissions differ by carrier and by line. Bikes emit nothing, but do count as avoided car kilometers. And remote work has its own calculation model based on the number of days.

We had to implement all these calculation models, connect them to the right data sources, and ensure the output meets the format required by the government.

The technical solution

We built an automated data pipeline that connects all mobility sources. The architecture has three layers. The first layer retrieves data from all providers via the adapters we had previously built. The second layer normalizes everything into a uniform trip format: start, end, distance, modality, vehicle type. The third layer applies the CO2 emission factors and generates the report.

The system runs on Python for data processing and calculations, PostgreSQL for storage, n8n for orchestration and scheduling, and REST APIs for external connections. Emission factors are managed centrally in a separate table that we update annually based on SKAO standards.

Reports are automatically generated on the first business day of each quarter. Each client receives a PDF and a CSV export that can be uploaded directly to the government portal. For deviations greater than 15% compared to the previous quarter, the system sends an alert so the team can verify the data before the report goes to the client.

What we ran into

The hardest part was historical data. Many clients didn't have a clean historical dataset. Trips were missing, vehicle data was incomplete, and remote work registrations simply didn't exist for 2023. For the first quarter, we had to create a reconstruction based on the best available data, with clear disclaimers in the report.

Another issue: emission factors change annually. SKAO publishes new factors, but not always on the same date. We set up an update process where the team gets a notification as soon as new factors are available, so they can be validated and imported before the next quarterly report is generated.

Results

Reporting time dropped from days to minutes. All connected companies comply with the reporting obligation without having to do anything themselves. The data is more current, more accurate, and always available. And the platform team can focus on product innovation instead of merging spreadsheets.

The broader lesson

Compliance reporting is ideally suited for automation: it has a fixed structure, fixed deadlines, and fixed data sources. But the investment isn't in the report itself. It's in the data quality underneath. Without clean, normalized data, you can't generate a reliable report. The pipeline is the product, not the PDF that comes out of it.