Course/Program Profitability
This use case explains how to model profitability by course or program for private and vocational education providers in Model Reef.
You will:
Attribute revenue and costs to courses and programs across campuses.
Combine tuition, fees, teaching cost and direct support cost into program P&L views.
Allocate shared overhead where needed to see fully loaded margins.
Use scenarios to test pricing, cost and mix strategies.
Model Reef is not a learning management or timetabling system. It provides a financial view of course and program economics based on the structures and drivers you define.
When to use this pattern
Use this pattern when:
You need to understand which programs drive margin and which consume resources.
You operate multiple campuses, modes or delivery formats for the same programs.
You want to link pricing, intake and teaching plans to financial outcomes.
You are considering launching, scaling or closing programs.
It sits on top of:
Student Enrolment and Intake Forecasts
Teaching Staff Allocation Model
Campus or Program Consolidation
Architecture overview
Course or program profitability modelling uses:
Structure
Branches for campuses or regions.
Categories and variables for programs and course groups.
Revenue attribution
Tuition and fee revenue per program and campus.
Additional revenue such as materials, exam or service fees.
Direct cost attribution
Teaching staff cost per program or group of programs.
Consumables, materials, licences and facility usage.
Placement, lab or clinic costs for vocational programs.
Overhead allocation
Shared administration and student support cost.
Facility and central services cost allocation.
Fully loaded margins by program.
Decide on program and course grouping
Decide at what level you want to analyse profitability, for example:
Whole qualification programs such as diplomas and degrees.
Streams or majors within programs.
Course clusters that are shared between programs.
Represent these as:
Categories such as Program - Nursing, Program - Business, Program - IT.
Variable naming that includes program and campus identifiers.
Group very small or low volume programs where appropriate to keep the model maintainable.
Attribute revenue to programs and campuses
From Student Enrolment and Intake Forecasts, you have:
Active student counts by program and campus.
Tuition fees and scholarships per program and student type.
Ensure that tuition Revenue variables are clearly tagged by program and campus, for example:
Revenue - Tuition - Program Nursing - Campus A.
Revenue - Tuition - Program Nursing - Campus B.
If you have additional fees, create separate Revenue variables for:
Materials or lab fees.
Registration or exam fees.
Placement or clinical fees.
This ensures that program level P&Ls reflect all relevant income streams.
Map teaching staff cost to programs
Using the Teaching Staff Allocation Model, determine how teaching staff effort is allocated across programs. You can:
Assign teaching roles primarily to one program where that is accurate, or
Use load allocation drivers that split effort across multiple programs based on contact hours, student load or historical teaching patterns.
Create Staff variables such as:
Staff - Lecturers - Program Nursing.
Staff - Tutors - Program Business.
Staff - Clinical Supervisors - Program Nursing.
Or maintain central Staff variables and use allocation formulas that push cost into program level Opex variables based on teaching load.
The key is to identify the portion of staff cost that is directly driven by each program.
Capture direct non staff costs per program
Create Opex variables for direct program costs, for example:
Opex - Teaching Materials - Program Nursing.
Opex - Software Licences - Program IT.
Opex - Lab Consumables - Program Science.
Opex - Placement and Supervision Fees - Program Allied Health.
Link these costs to drivers such as:
Cost per student.
Cost per class or group.
Cost per placement or lab session.
This allows direct costs to scale with enrolments and delivery patterns.
Allocate overhead and shared costs
Shared costs that cannot be directly assigned to a single program need allocation, such as:
Campus administration and student services.
Marketing and admissions.
Facilities and utilities.
Central IT and management overhead.
Define allocation drivers in the Data Library, for example:
Share of student load or enrolments.
Share of direct teaching cost.
Share of revenue.
Fixed allocations for strategic programs.
Create allocation variables that move portions of total overhead into program level Opex variables. This produces fully loaded program P&L views alongside direct contribution views.
Build program and portfolio P&L views
Use reports and dashboards to build:
Program level P&Ls per campus and for the group.
Comparisons between programs by margin, revenue and student load.
Campus level views showing program mix and margin.
Portfolio level summaries by discipline or qualification type.
These views support decisions about pricing, cost structure, delivery format and program mix.
Use scenarios for pricing, mix and cost strategies
Clone the base model into scenario models to test:
Fee increases or scholarship changes by program.
Scaling up or down specific programs.
Introducing new pathways, delivery modes or campuses.
Changing staff mix or teaching models (for example more online or blended).
Adjusting overhead allocations and campus footprints.
In each scenario, adjust:
Enrolment and fee drivers.
Staff allocation and cost drivers.
Direct cost assumptions.
Overhead allocation rules.
Compare scenarios using:
Program and campus level margins.
Total portfolio margin and cashflow.
Capacity and staffing implications.
Strategic contribution of programs beyond short term margin where you choose to add qualitative markers.
Check your work
Program level revenues reconcile with academic and finance reporting for recent periods.
Direct teaching and support costs match how resources are actually deployed.
Overhead allocation rules are transparent and acceptable to stakeholders.
Scenario analysis helps frame concrete decisions rather than just adding complexity.
Troubleshooting
Related guides
Last updated