> For the complete documentation index, see [llms.txt](https://help.modelreef.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.modelreef.io/use-cases/not-for-profit-and-education/donor-revenue-stream-forecasting.md).

# Donor/Revenue Stream Forecasting

This use case explains how to forecast donations, membership income and other revenue streams for not-for-profit and education organisations in Model Reef.

You will:

* Segment income streams by donor type, product or channel.
* Model donor counts, retention, upgrade and acquisition.
* Forecast memberships, events and earned revenue.
* Connect income streams to programs and group level reporting.

Model Reef is not a donor CRM. It sits above CRM and fundraising tools, using aggregated metrics and imported data to drive financial forecasts.

## When to use this pattern

Use this pattern when:

* You rely on a mix of grants, donations, memberships, events and earned income.
* You want to understand how donor behaviour drives revenue.
* You need to test campaigns, pricing and retention strategies.
* You want fundraising and earned income assumptions integrated with program costs and cash planning.

It is often used alongside:

* Grant Funding Models
* Program Cost Modelling
* Multi Program Consolidated Reporting

## Architecture overview

Donor and revenue stream forecasting uses:

1. Income stream segmentation
   * Individual donors, major donors, corporates, trusts and foundations.
   * Memberships, events, courses or products.
   * Channels such as digital, mail, face to face or corporate partnerships.
2. Donor and customer drivers
   * Donor or member counts by segment.
   * Retention, upgrade and acquisition rates.
   * Average gift or spend per donor, member or transaction.
3. Revenue variables
   * Revenue per segment and channel.
   * One off versus recurring streams.
   * Timing of receipts.
4. Financial outputs
   * Income by source and program.
   * Channel performance metrics.
   * Cashflow and volatility patterns.

{% stepper %}
{% step %}

### Step 1: Define revenue segments and channels

Create a list of income streams that matter for planning, such as:

* Individual regular giving.
* Individual one off donations.
* Major donors.
* Corporate giving and sponsorship.
* Trusts and foundations.
* Memberships or subscriptions.
* Events and campaigns.
* Course fees or tuition.
* Merchandise or other earned income.

For each stream, decide whether it will live in:

* A program branch, where it is directly linked to a program, or
* A central fundraising or revenue branch, where it supports multiple programs.
  {% endstep %}

{% step %}

### Step 2: Create donor and customer drivers

In the Data Library, create time series drivers such as:

* `Number of Regular Givers`.
* `Average Monthly Gift - Regular Givers`.
* `Number of One Off Donors per Campaign`.
* `Average One Off Gift`.
* `Number of Members` and `Average Membership Fee`.
* `Event Attendees` and `Average Ticket Price`.

Where relevant, also define behavioural drivers:

* `Retention Rate - Regular Givers`.
* `Upgrade Rate - Regular Givers`.
* `Acquisition Rate` or new donor counts.
* `Churn Rate - Members`.

You can implement these as direct level drivers (counts and amounts per period) or as transition drivers that change the counts over time.
{% endstep %}

{% step %}

### Step 3: Build revenue variables per stream

For each segment, create Revenue type variables, for example:

* Revenue - Regular Giving.
* Revenue - One Off Giving.
* Revenue - Major Donors.
* Revenue - Membership Fees.
* Revenue - Events.
* Revenue - Course Fees.

Define formulas such as:

* Revenue - Regular Giving\
  \= Number of Regular Givers × Average Monthly Gift × 12 for annual models, or times the number of periods in each period.
* Revenue - Membership Fees\
  \= Number of Members × Average Membership Fee per Period.

For events and campaigns, you can model:

* Number of events.
* Average attendees per event.
* Average revenue per attendee.

These variables will flow into P\&L and cash once timing is configured.
{% endstep %}

{% step %}

### Step 4: Apply timing and payment methods

For each revenue variable, define timing rules that reflect how cash arrives, for example:

* Regular giving debits at the start or end of each month.
* Online donations cleared within a few days.
* Direct debit batches with a small delay.
* Event ticket sales occurring ahead of the event date.
* Course fees collected up front or per term.

Set delays or schedules so that:

* Revenue is recognised when earned in P\&L.
* Receivables or deferred income appear on the Balance Sheet where appropriate.
* Cashflow and Cash Waterfall reflect actual inflows.

This allows you to see the impact of revenue seasonality and the lag between campaign activity and cash received.
{% endstep %}

{% step %}

### Step 5: Map revenue streams to programs and purposes

To understand how revenue supports program activity:

* Use branches to link revenue streams directly to programs where restricted.
* Represent unrestricted or general funds in a central branch and allocate them conceptually to programs in reporting views.
* Tag revenue variables with program or purpose where a single stream supports multiple areas.

Custom reports and dashboards can then show:

* Income by source per program.
* Share of restricted versus unrestricted funding.
* Dependence on particular donor types or channels.

This supports risk assessment and communication with funders and boards.
{% endstep %}

{% step %}

### Step 6: Use scenarios for campaigns and behaviour changes

Clone the base model into scenario models to explore situations such as:

* Increased investment in acquisition campaigns.
* Changes in retention or upgrade rates.
* Loss of a major donor or partner.
* Introduction of new revenue products, memberships or events.
* Macro shocks that reduce giving or course enrolments.

In each scenario, adjust:

* Donor and member counts.
* Behavioural drivers (retention, upgrade, churn).
* Average gift or spend per donor, member or customer.
* Campaign volumes and cost where linked to program or fundraising costs.

Compare scenarios using:

* Total income by stream and in aggregate.
* Volatility and concentration of income.
* Cash runway and reserves.
* Ability to fund program portfolios over time.
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}

### Check your work

* Donor, member and customer counts reflect recent history when the model is calibrated.
* Average gift and behavioural assumptions are realistic, based on internal data or benchmarks.
* Revenue timing assumptions match actual payment patterns.
* The model is segmented enough to be useful but not so granular that it is hard to maintain.
  {% endhint %}

## Troubleshooting

<details>

<summary>Income appears too smooth compared with history</summary>

Introduce seasonality or campaign effects and adjust timing so that peaks align with typical fundraising or enrolment periods.

</details>

<details>

<summary>Scenario results are hard to interpret</summary>

Focus on a limited number of key segments for scenario analysis and keep minor streams grouped for simplicity.

</details>

<details>

<summary>Dependence on a small number of donors is not obvious</summary>

Use dashboards that highlight concentration, such as top ten donor or partner contributions, even if these are modelled at aggregated levels.

</details>

## Related guides

* [Build an Equity Valuation Model (FCFE)](/how-tos/valuation/build-an-equity-valuation-model-fcfe.md)
* [Build an Executive Dashboard](/how-tos/dashboards-and-reporting/build-an-executive-dashboard.md)
* [FCFE Calculation](/help/financial-outputs-and-valuation/fcfe-calculation.md)
* [Subcategory Selection](/syntax/variables-syntax/subcategory-selection.md)
