Skip to content

A Donor Value Model Told This NGO Who Would Give. It Didn't Say What to Change

A data science team inside a global children's rights NGO spent months building a Bayesian model to forecast donor value. It worked. It still could not tell the fundraising team which action would move that value.

That gap is the case study here, whether the budget in question is donor retention or customer acquisition.

The decision this model was built to inform

The NGO's fundraising and marketing teams needed to compare donor value, at the individual and segment level, to allocate budget toward expected long-term impact rather than short-term donation revenue. They wanted the resulting lifetime-value number to work as a core KPI: a common yardstick for judging acquisition channels and reading A/B test results.

That is a forecasting problem. Predicting a number and knowing what changes it are different questions, and the second one is where a budget decision actually lives.

Two donor types, two pillars

The team's data covered two overlapping donor behaviors: committed recurring giving ("pledge donors") and flexible, ad hoc contributions ("cash donors"). A single supporter could show both patterns over time. Most records started in 2018, with a subset of pledge histories going back to the 1990s. The team set 2024-01-01 as the train/test split, holding out roughly two years for out-of-sample testing.

They built one model per behavior:

Both pillars applied a 2% annual discount rate to account for currency devaluation, kept configurable rather than fixed. The team capped the forecast horizon at 10 years, judging that their observation window could not support reliable inference beyond that range given their donor base's loyalty patterns. Total donor-level value is cash CLV plus pledge CLV.

The team checked that donation frequency and donation amount stayed roughly independent, a required assumption for the Gamma-Gamma model, using a correlation threshold below 0.3 as their working rule of thumb.

Why MAP replaced MCMC at this scale

PyMC, the open-source probabilistic programming library underneath this work, supports several fitting methods. The team started with MCMC (Markov chain Monte Carlo) sampling, which returns full posterior distributions rather than single point estimates, useful because it lets a team assess uncertainty directly rather than assuming it away.

At their scale, more than a million data points, that advantage came with a cost. Sampling was compute-intensive, tuning draws, chains, and target acceptance rate took sustained iteration, and the team hit convergence and autocorrelation problems even after switching samplers. They eventually downsampled the data to keep MCMC runtime feasible.

They moved to MAP (Maximum a Posteriori) estimation instead: point estimates from an optimization over the posterior density rather than a full sampling process. For a dataset this size, MAP ran with less tuning overhead and avoided the convergence headaches, at the cost of losing built-in uncertainty quantification. MAP is still Bayesian: priors regularize the fit, but the team had to reason about uncertainty separately from the estimate itself.

The broader lesson for any team evaluating Bayesian CLV work: the full-posterior advantage of MCMC is most compelling in small-data regimes. At large scale, it can become the obstacle rather than the benefit.

What the model still leaves open

None of this tells the fundraising team which lever to pull. A well-fit CLV model ranks donors and segments by predicted value. It does not test whether a different ask amount, a different retention message, or a different acquisition channel would change that value.

That's the distinction Subconscious is built around: testing the specific product, pricing, messaging, or go-to-market action before a budget commits, using causal experimentation and discrete-choice-style modeling. It's a complement to value-prediction work like the CLV model above, not a replacement for it. Subconscious does not build donor or customer lifetime-value forecasts, survival curves, or the production modeling pipeline described here; that statistical work stays with a team's own data science function.

A team can validate a simulated result against real human participants without changing the underlying causal question, useful when a channel or message decision is expensive enough to justify a second check.

Limitations and what this case study doesn't prove

The NGO's own team flagged two open gaps in their model: it is revenue-driven and does not yet account for cost, and it does not model donors moving between cash and pledge behavior over time.

Separately, a causal action test answers a narrower question than this CLV model does. It will not forecast ten-year donor value or produce a survival curve. It tells you whether a specific change to price, message, or offer moves the outcome you tested, with uncertainty stated qualitatively rather than promised as a fixed confidence interval.

Two-column comparison. MCMC: full posteriors, fine at small scale, hit convergence problems past a million data points. MAP: point estimates, ran at that scale, lost built-in uncertainty quantification.
The same Bayesian fitting choice is right at small scale and wrong at large scale, the tradeoff reverses, it doesn't just get bigger.

Where this fits in a budget cycle

Use a lifetime-value model to decide where to look: which segments, which channels, which donors justify more attention. Use a causal test to decide what to do about it: which specific action actually changes behavior in that segment before the budget ships. Treat the two as sequential steps in the same decision, not competing methods.

Two-column comparison. Left: CLV forecast feeding a ranked list of donors by predicted value. Right: an open question over which lever moves value, resolved by testing the action before budget commits.
The CLV model ranks donors by predicted value; a separate causal test is needed to find out what changes that value.