Non-ProfitCase study 23

Fund-to-Program Reconciliation Platform

Restricted-fund reconciliation moved from a quarterly finance project to a continuously current system that finance and program teams both work from directly.

Financial SystemsGrant Compliance ToolingData Integration
40restricted-fund grants reconciled continuously
5 → 2 wksaudit cycle time, before vs after (–60%)
Quarterly → Continuousreconciliation cadence

The challenge

The foundation manages roughly $38M across 40 concurrent restricted-fund grants, with a six-person finance team and a fourteen-person program team working from different systems. Before the engagement:

  • Each grant's restriction terms lived in a separate spreadsheet interpreted differently by whoever last touched it
  • The general ledger and program expense reports routinely diverged by quarter-end
  • Reconciliation was a five-week manual matching project undertaken only once a quarter
  • Restricted and unrestricted fund transactions were occasionally misclassified with no automated check
  • Auditors requested ad hoc reconciliation evidence that took days to reconstruct from scratch
  • Program staff had no visibility into whether their spending tracked against fund restrictions until finance flagged it, often after the fact

How it works

Making reconciliation a byproduct of the workflow, not a quarterly project

  1. 01

    Mapped every grant agreement's restriction terms into structured, machine-readable rules

  2. 02

    Integrated the general ledger with the program expense system so both write to shared transaction records

  3. 03

    Built a matching engine that reconciles transactions against fund restrictions as they post, not at quarter-end

  4. 04

    Routed unmatched or out-of-policy transactions to a daily exception queue instead of a quarterly backlog

  5. 05

    Built a shared dashboard so finance and program leads see the same current reconciliation state

  6. 06

    Logged every match and exception to an immutable audit trail

  7. 07

    Trained the finance team to run reconciliation as a daily five-minute check instead of a quarterly sprint

What we built

Key capabilities

01

Continuous reconciliation

Transactions match against fund restrictions as they post, replacing the quarterly matching backlog entirely.

02

Automated exception detection

Out-of-policy or unmatched transactions surface in a daily queue instead of surfacing at quarter close.

03

One shared system of record

Finance and program teams work from the same current reconciliation state instead of reconciling two systems after the fact.

04

Audit-ready by default

Every match and exception is logged to an immutable trail, so audit evidence is a query rather than a reconstruction project.

Before vs after

What changed for finance and program teams

Reconciliation cadence
Quarterly → continuous
Audit cycle time
5 weeks → 2 weeks
Unmatched transaction backlog
Large, quarter-end → near-zero, daily
System visibility
Finance-only → shared with program teams

Business impact

What it changed

60% shorter audit cycle

Audit cycle time fell from five weeks to two — a direct result of reconciling continuously instead of reconstructing a quarter's worth of transactions at once.

Misclassification caught same-day

Restricted-fund exceptions now surface within a day of posting instead of being discovered at quarter close.

Program teams see their own compliance status

Program leads can check fund restriction status directly instead of waiting on a finance flag after the fact.

Technology stack

Accounting system integrationPython matching enginePostgreSQLLooker

The foundation didn't need a faster audit — it needed reconciliation to stop being something that only happened four times a year.