Selected work

Finance data is where the numbers have to be right. These are problems we've solved: revenue that arrives from three systems and doesn't agree, contracts that live on paper instead of in code, and payouts that take a fortnight because someone has to check everything by hand.

Some of this work was delivered as Museni Nexus engagements; some in-house, before the practice. Clients are unnamed and figures are rounded.

01

Creator royalty engine and ERP invoice automation

Subscription media · BigQuery, dbt, Airflow, Python, Dynamics 365 Business Central

A European podcast and audiobook streaming platform pays revenue shares to hundreds of creators and publishers every month. The numbers came from three systems that never agreed.

Outcome
Monthly payout cycle
18 days → 7 days
Contract logic
Tested, versioned, reviewable
Anomalies
Caught before payout
Warehouse cost
Down ~70%
Annual saving
~€1.2M

The situation

Each contract carried its own logic: different revenue splits, different minimum guarantees, different rules for how streams and subscriptions convert into money owed.

The process ran on manual exports, spreadsheets and institutional memory. Every month, finance spent up to 18 days assembling numbers from systems that didn't naturally agree — streaming data from the product platform, revenue data from billing, contract terms from documents. Errors were hard to catch, disputes were hard to resolve, and the people who understood the process were a single point of failure.

The problem underneath

This wasn't a spreadsheet problem. It was a reconciliation problem: three systems, each with its own version of the truth, and a set of contractual rules that existed only on paper.

Any automation that didn't first make the numbers agree would just produce wrong answers faster.

What we built

Working on the client's BigQuery, dbt and Airflow stack:

  • Encoded the contracts as codeEvery revenue-share rule, minimum guarantee and edge case from the agreements became tested, versioned transformation logic — reviewable by finance, not buried in anyone's head.
  • Built the reconciliation layer firstBefore a single payout was computed, we modelled how streaming, billing and contract data map onto each other, and made disagreements visible instead of silent — with automated outlier tests that flag anomalies for finance to investigate before money moves.
  • Automated the pipeline end to endFrom raw platform data to payout-ready figures, orchestrated on a monthly schedule, with data-quality tests at every stage and alerts when something needs a human.

The results

Payout cycle time fell from 18 days to 7, with a clear path to same-week payouts, and roughly €1.2M in annual savings from correctly applied contract logic and eliminated manual effort. Re-architecting the models also cut warehouse costs by roughly 70%.

Anomalies now surface beforepayouts go out. Finance investigates exceptions instead of rebuilding everything from scratch each month. And the process survives personnel changes: the rules live in tested code, not in one person's memory.

Why it matters beyond this client

Every business that shares revenue — with creators, publishers, artists, partners or affiliates — runs some version of this problem. The systems never agree out of the box. The contracts are always more complicated than the first spreadsheet assumed.

The fix is the same discipline every time: reconcile first, encode the rules, automate with tests, and keep humans in the loop for exceptions.

02

Cross-source wholesale reconciliation

Global retail distribution · Snowflake, dbt, Python, REST APIs

A brand selling through wholesalers across several continents needed to know what retailers were actually selling from the shelf, not just what had been shipped to them. The obstacle wasn't volume — it was that every partner exported a different format, currency and tax treatment varied by market, and no shared entity IDs existed between the internal ERP and the partners' reports. Sell-in and sell-out simply didn't tie.

We built a reconciliation engine that ingests the messy exports as they come, and entity-matching logic that bridges internal product masters to external partner records without canonical keys. Discrepancy tests flag mismatched volumes, pricing gaps and missing settlement records automatically, rather than someone finding them in a spreadsheet weeks later.

One audit-ready source of truth for cross-border margin, and finance sees discrepancies as they appear rather than at quarter end.

03

Audit-ready reporting for a regulated financial platform

Fintech · Cloud warehouse, dbt, SQL, CI/CD

In regulated finance, a reconciliation error isn't a dashboard problem — it's a compliance problem. Every downstream metric has to trace back to the raw ledger event.

We built and maintained the staging, intermediate and mart layers behind regulated reporting, with testing that goes beyond uniqueness and null checks to custom balance assertions, plus CI/CD and version control so lineage is auditable end to end.

The standard was simple: the numbers tie to the source, exactly.

04

Turning warehouse data into a product

Consumer subscription · Warehouse, reverse ETL, Python

User engagement data was sitting in the warehouse where no customer-facing system could reach it.

We modelled raw behavioural data into personalised, production-ready payloads and pushed them back out to the applications customers actually touch.

It became an end-of-year personalised experience feature — analytics turned into something users could see, during the highest-traffic weeks of the year.

Recognise any of this?

Payouts that take too long. Numbers that don't tie. Contract logic that lives in one person's head. Invoices posted by hand.

Book a 15-minute technical call