Estimated Incremental Applications
Definition
Section titled “Definition”How many extra applications did paid digital media help generate — above what we would have gotten without it?
In every year we can fully measure, students who saw our paid media applied at roughly two to three times the rate of students who did not. This page estimates how many of those applications paid media is responsible for.
Summary
Section titled “Summary”Paid media’s contribution grew every year as investment scaled — from an estimated 159 extra applications in FY2023 to 559 in FY2025.
| Fiscal Year | Students Who Saw Paid | Their Apply Rate | Everyone Else’s Rate | Extra Applications |
|---|---|---|---|---|
| 2023 | 1,557 | 19.5% | 9.3% | 159 |
| 2024 | 1,734 | 36.5% | 13.6% | 397 |
| 2025 | 2,711 | 28.2% | 7.6% | 559 |
| 2026 (in progress) | 4,203 | 17.9% (see note) | 5.5% | 522* |
Key Insight
Section titled “Key Insight”Paid media works, and it’s working better than ever. Every year we can fully measure, paid-exposed students apply at 2–3x the rate of everyone else — adding hundreds of applications a year, up to 559 in FY2025. FY2026 looks softer at a glance only because a new vendor’s students joined too recently to have applied yet. On an apples-to-apples basis, FY2026 paid media is our strongest year. Don’t judge the newest investment on a half-finished scoreboard.
Why This Is Important
Section titled “Why This Is Important”This metric translates paid media into the language that matters to a board: applications, not impressions or clicks. It answers one question directly — how many applications would we lose if we stopped spending?
Two things make the case stronger over time:
- The gap is widening. Students who see paid media apply at 2–3x the rate of those who don’t, and that multiple has grown as the general apply rate softened under the new application fee.
- The newest dollars are still maturing. The FY2026 EDDY investment hasn’t had time to show its full return. As those students decide, both the paid apply rate and the estimated extra applications should rise.
Natural next steps for this metric:
- Cost per extra application
- Cost per extra enrollment
- Extra net tuition revenue generated
Methodology
Section titled “Methodology”Each person is classified as paid_exposed or not_exposed based on whether they have a paid_exposed tag in person_tags. Persons are grouped by fiscal year based on their created_at date using the July 1 cutoff.
Application rates are calculated for each group per fiscal year. The incremental rate is the difference between the paid and non-paid rates. Estimated incremental applications is that incremental rate applied to the paid applicant count:
estimated_incremental_applications = paid_applicants × (incremental_rate / paid_rate)This formula asks: of the paid applicants we observed, how many applied at a rate above the non-paid baseline? It does not assume all paid applicants were influenced — only the portion above what the background rate would predict.
CREATE OR REPLACE TABLE paid_exposure_application_lift ASWITH paid AS ( SELECT person_id, MIN(tag_date) AS first_paid_at FROM person_tags WHERE tag_type = 'paid_exposed' GROUP BY person_id),
applied AS ( SELECT person_id, MIN(tag_date) AS applied_at FROM person_tags WHERE tag_type = 'applied' AND tag_value = 'Yes' GROUP BY person_id),
people AS ( SELECT pd.person_id, pd.fiscal_year,
CASE WHEN paid.person_id IS NOT NULL THEN 'paid_exposed' ELSE 'not_exposed' END AS exposure_group,
applied.applied_at
FROM persons_dashboard pd
LEFT JOIN paid ON pd.person_id = paid.person_id
LEFT JOIN applied ON pd.person_id = applied.person_id),
aggregated AS ( SELECT fiscal_year, exposure_group,
COUNT(DISTINCT person_id) AS people,
COUNT(DISTINCT CASE WHEN applied_at IS NOT NULL THEN person_id END) AS applicants,
COUNT(DISTINCT CASE WHEN applied_at IS NOT NULL THEN person_id END) * 1.0
/
COUNT(DISTINCT person_id) AS application_rate
FROM people
GROUP BY 1,2),
pivoted AS ( SELECT fiscal_year,
MAX(CASE WHEN exposure_group = 'paid_exposed' THEN people END) AS paid_people,
MAX(CASE WHEN exposure_group = 'paid_exposed' THEN applicants END) AS paid_applicants,
MAX(CASE WHEN exposure_group = 'paid_exposed' THEN application_rate END) AS paid_rate,
MAX(CASE WHEN exposure_group = 'not_exposed' THEN people END) AS non_paid_people,
MAX(CASE WHEN exposure_group = 'not_exposed' THEN applicants END) AS non_paid_applicants,
MAX(CASE WHEN exposure_group = 'not_exposed' THEN application_rate END) AS non_paid_rate
FROM aggregated
GROUP BY fiscal_year)
SELECT fiscal_year,
paid_people, paid_applicants, ROUND(paid_rate, 3) AS paid_rate,
non_paid_people, non_paid_applicants, ROUND(non_paid_rate, 3) AS non_paid_rate,
ROUND( paid_rate / NULLIF(non_paid_rate, 0), 2 ) AS lift_ratio,
ROUND( paid_rate - non_paid_rate, 3 ) AS incremental_rate,
ROUND( paid_applicants * ( (paid_rate - non_paid_rate) / NULLIF(paid_rate, 0) ), 0 ) AS estimated_incremental_applications
FROM pivotedWHERE fiscal_year::INT IN(2023, 2024, 2025, 2026)ORDER BY fiscal_year;