Program Cost Modelling

This use case explains how to model program level costs for not-for-profit and education organisations in Model Reef.

You will:

  • Represent programs, projects or services as separate branches.

  • Attach staffing, direct costs and allocated overheads to each program.

  • Link program costs to grant income, donations and earned revenue.

  • Produce P&L and cash views per program and in total.

The goal is to understand the true cost of delivering each program and to support funding, pricing and prioritisation decisions.

When to use this pattern

Use this pattern when:

  • You run multiple programs, services or projects with distinct objectives.

  • You want to know which programs are fully funded, partially funded or cross subsidised.

  • You need to justify funding requests or report program economics to stakeholders.

  • You want program economics stitched into group level reporting.

It is commonly combined with:

  • Grant Funding Models

  • Donor or Revenue Stream Forecasting

  • Multi Program Consolidated Reporting

Architecture overview

Program cost modelling uses:

  1. Branch structure

    • One branch per program or project.

    • Optional regional or thematic parent branches.

    • Central overhead branch for shared costs.

  2. Staff and direct cost variables

    • Program staff, contractors and volunteers.

    • Direct costs such as materials, venues, travel and equipment.

  3. Overhead allocation structures

    • Central administration and support functions.

    • Allocation drivers by FTE, revenue, headcount or other metrics.

  4. Financial outputs

    • Program level P&L and cash.

    • Contribution after direct and allocated overheads.

    • Coverage ratios relative to funding.

1

Step 1: Create branches for each program

In the branch tree, define a structure that reflects how you run and monitor your work, for example:

  • Organisation

    • Program - Youth Services

    • Program - Adult Education

    • Program - Research and Evaluation

    • Central Overheads

If you manage programs by region or thematic area, insert intermediate branches such as Region - North or Theme - Health, then add program branches underneath.

Each program branch will contain its own revenue and cost variables.

2

Step 2: Add program staff cost structures

Within each program branch, create Staff variables, for example:

  • Staff - Program Manager - Youth Services.

  • Staff - Case Workers - Youth Services.

  • Staff - Tutors - Adult Education.

  • Staff - Researchers - Research Program.

Define drivers for:

  • FTE per role.

  • Average salary per FTE.

  • Oncost percentages for super, pension, payroll tax and other benefits.

Formulas typically look like:

  • Staff Cost - Case Workers - Youth Services = FTE Case Workers × Salary per FTE × (1 plus Oncost Percentage).

Use timing settings to reflect pay cycles and delays, so that P&L, Balance Sheet and Cashflow outputs align with how staff are actually paid.

3

Step 3: Add direct program costs

Still within each program branch, create Opex variables for direct costs, for example:

  • Opex - Venue Hire - Youth Workshops.

  • Opex - Materials and Supplies - Adult Education.

  • Opex - Travel and Outreach - Youth Services.

  • Opex - Participant Support Costs - Research Program.

Link these to drivers such as:

  • Cost per participant or per group.

  • Cost per workshop or per term.

  • Cost per kilometre of travel.

  • Fixed baseline cost per period with growth.

This ensures direct costs scale appropriately with program activity in different scenarios.

4

Step 4: Model central overheads and allocation choices

In a Central Overheads branch, represent organisation wide costs, for example:

  • Staff - Executive and Leadership Team.

  • Staff - Finance, HR and IT.

  • Opex - Office Rent and Utilities.

  • Opex - Central Systems, Subscriptions and Insurance.

Decide whether to:

  • Leave these costs unallocated and show program contribution before central overheads, or

  • Allocate some or all overheads to programs for a fully loaded view.

If you allocate overheads, define drivers such as:

  • Share of FTE per program.

  • Share of program direct costs.

  • Share of revenue or funding per program.

Implement allocation through:

  • Additional Opex variables in program branches that reference central cost pools and allocation drivers, or

  • Custom reports that apply allocation formulas when presenting results.

Make allocation logic transparent and easy to adjust.

5

With program costs in place, connect them to funding streams by:

  • Using Grant Funding Models to represent grants in each program branch.

  • Using Donor or Revenue Stream Forecasting to represent donations, membership fees or earned income by program.

  • Keeping central or general funds in a separate branch if they are not program specific.

Create dashboards and reports that show for each program:

  • Total funding from grants, donations and earned revenue.

  • Total staff and direct costs.

  • Program contribution before and after overhead allocations.

  • Funding coverage ratios and any funding gaps.

This provides a clear picture of which programs are constrained, which are well funded and where flexible funding is most needed.

6

Step 6: Use scenarios for program changes and prioritisation

Clone the base model into scenario models to assess options such as:

  • Scaling successful programs up or extending them to new regions.

  • Restructuring or winding down underperforming programs.

  • Adjusting delivery models (for example more group sessions, hybrid or digital delivery).

  • Responding to changes in grant funding or donor income.

In each scenario, adjust:

  • Program staff and direct cost drivers.

  • Funding levels and mix per program.

  • Overhead allocation rules and central cost structures.

Compare scenarios using:

  • Program and group level surplus or deficit.

  • Cash requirements and reserve usage.

  • Ability to protect core programs under stress cases.

  • Clarity for boards and funders about trade offs.

Check your work

  • Program list and structure match how work is managed and reported internally.

  • Staff and cost assumptions reconcile to recent budgets or actuals when calibrated.

  • Overhead allocations are understandable and not overly complex.

  • The model can be maintained as programs start, scale, pause or end.

Troubleshooting

chevron-rightSome programs appear more or less expensive than expectedhashtag

Revisit staff and direct cost assumptions and check that all relevant costs are captured within the correct program branch.

chevron-rightCentral overheads dominate program level resultshashtag

Show both pre and post allocation views and clearly explain allocation drivers. Consider whether some central costs should be treated as strategic rather than allocated.

chevron-rightThe model is difficult to keep updated when programs changehashtag

Use consistent naming and structure, and consider a template pattern for programs so that adding or removing a program is straightforward.

Last updated