Channel spend / month
Program mix — how spend is apportioned
Weights normalize to 100%. Set a program to 0 to drop it from the buy.
Panel A — starts & cost per start, by program
| Program | Inquiries | Apps | Starts | Seats | Cost / start |
|---|
Marginal economics at the current operating point
| Channel | Spend | % of ceiling | Next $1K buys | Marginal cost/start |
|---|
When the marginal column spans 3x across channels, the last dollars are in the wrong place. A lead score can't see this — it ranks people, not budgets.
Where this lands against the benchmarks
Reference lines: ~$1,505 median cost per enrolled start (undergrad) and ~$3,804 (graduate). Only 43% of higher-ed marketers can compute their own dot on this axis.
Panel B — same budget, reallocated
Greedy hill-climb: the total budget is re-spent $1K at a time, each chunk going to whichever channel buys the most incremental starts at that moment — respecting seat capacity, which mutes a channel once its programs fill.
Current vs optimized allocation
| Channel | Current | Optimized | Shift |
|---|
Hand-allocation on historical averages misplaces an estimated 20–30% of media budgets — this is that number, made specific to one institution.
Panel C — channel response curves
Funnel assumptions — editable
| Program | Inquiry → app | App → enroll | Seat capacity / mo |
|---|
Every output on every tab recomputes from these cells. In production they come from the SIS join, not a slider.
One-pager: the outcome calculator
An agency repositioning from lead volume to cost-per-enrolled-start economics needs to forecast enrolled starts under different spend allocations — otherwise outcome-based deals can't be quoted, only hoped for. A lead score is not a budget-allocation method. The missing layer is per-channel response ceilings and saturation: roughly 75% of performance marketers report diminishing returns on social spend, yet most plans still extrapolate last quarter's average CPL as if it were the marginal one.
- Each channel × program pair is a concave response curve: inquiries = C · (1 − e^(−spend/k)), where C is the saturation ceiling and k sets how fast the channel bends. Paid Search saturates fastest; CTV is cheaper at the margin but noisier.
- Inquiries flow through each program's own funnel (inquiry→app, app→enroll, seat capacity) to monthly enrolled starts and a blended cost per start, against the published undergrad/grad benchmarks.
- The marginal column — what the next $1K buys in each channel — makes misallocation visible, and a greedy optimizer prices it: same budget, more starts.
The same engine with curves fit from the agency's own $100M+ of historical spend — hierarchical Bayesian or saturating-regression fits per channel-by-vertical, so a small program borrows strength from the portfolio. Refreshed monthly; joined to SIS enrollment records so the response variable is actual starts, not proxied leads. Only 43% of higher-ed marketers track cost per enrolled student — the institutions that can see this screen are the ones that sign outcome deals.
I've sold and built exactly this stack: Director of Solutions at Sparkroom (higher-ed performance marketing), closing and implementing $1.5M/yr in education SaaS; senior data scientist at Meta on ads and media analytics; and prior open-source work on a constrained media-budget optimizer with a CPI-vs-CPS objective toggle — the same allocation math under a different acronym. — Jeff Pinto · jeff@jeffpinto.com · jeffpinto.com