Non-ProfitCase study 21

Multi-Country Outcome Ledger

Five country offices, three funder formats, one ledger — program data is captured once and reshaped automatically for every reporting obligation.

Data EngineeringM&E SystemsReporting Automation
18 wksfrom data audit to first automated funder report
14 → 3 daysfunder reporting time, before vs after
3 formats / 1 ledgerdonor reports generated from a single data source

The challenge

The organization runs learning programs for roughly 46,000 students across five countries, with each country office maintaining its own monitoring & evaluation records. Ahead of every donor deadline, the M&E team faced:

  • Five country offices tracking outcomes in independent spreadsheet workbooks
  • Indicator definitions that had quietly diverged between programs over several years
  • Three funders each requiring a different reporting template, frame, and cadence
  • Two to three weeks of manual copy-and-reconcile work before every submission
  • No single number anyone could point to as the organization's current enrollment or completion rate
  • Duplicate data entry between program staff and finance during grant reporting

Reporting cycles landed every six to eight weeks across the three funders, so the 14-day scramble was recurring, not occasional.

How it works

One canonical ledger, three report shapes on top of it

Rather than build another reporting template, the engagement targeted the data layer underneath all of them:

  1. 01

    Audited data collection practices and indicator definitions across all five country offices

  2. 02

    Built a canonical indicator taxonomy that mapped cleanly onto each of the three funder frameworks

  3. 03

    Stood up nightly ETL pipelines pulling program and enrollment data from each country office into a central ledger

  4. 04

    Modeled the ledger around beneficiary, indicator, period, and geography so any funder cut is a query, not a rebuild

  5. 05

    Generated parameterized report templates for each funder directly from the ledger schema

  6. 06

    Added a validation dashboard flagging missing or out-of-range entries before they reach a report

  7. 07

    Trained country M&E leads on the new intake process and handed off ledger ownership to headquarters staff

What we built

Key capabilities

01

Single source of truth

One ledger now holds every country's outcome data, replacing five independently maintained workbooks.

02

Funder-format generation

Each donor's report is a parameterized view over the same ledger — no manual reformatting per submission.

03

Built-in data quality checks

A validation dashboard catches missing fields and definitional drift before it reaches a funder report.

04

Cross-country comparability

A shared indicator taxonomy means enrollment and completion figures mean the same thing in every country office.

Before vs after

What changed in the reporting cycle

Funder reporting time
14 days → 3 days
Indicator definitions
5 divergent sets → 1 canonical taxonomy
Data consolidation
Manual spreadsheet merge → nightly automated sync
Report generation
Hand-built per funder → 3 formats from 1 ledger

Business impact

What it changed

11 days recovered every reporting cycle

Funder reporting dropped from 14 days to 3 — a 79% reduction repeated across three funders and multiple cycles a year.

Program staff back in the field

Time previously spent reconciling spreadsheets before deadlines now goes to field verification and program support.

One defensible number per indicator

Leadership and funders now work from the same enrollment and completion figures, closing a recurring source of audit questions.

Technology stack

PostgreSQLdbtPython ETLMetabase

A reporting problem that looked like a template problem turned out to be a data-model problem — fix that once, and every downstream report gets faster.