Channel Concentration Risk
Definition
Section titled “Definition”The percentage of total applicants and touched persons whose first engagement came from each source group, with attention to how dependent the applicant pipeline is on any single channel. High concentration in a paid vendor means application volume is exposed to contract changes, budget cuts, or vendor performance shifts.
Summary
Section titled “Summary”FY2023 — 15,034 touched persons
| Source Group | People | Applicants | % of Touched | % of Applicants |
|---|---|---|---|---|
| direct / unknown | 9,246 | 2,094 | 61.5% | 54.7% |
| organic search | 4,157 | 1,609 | 27.7% | 42.0% |
| paid / carnegie | 1,061 | 33 | 7.1% | 0.9% |
| 276 | 53 | 1.8% | 1.4% | |
| organic social | 116 | 24 | 0.8% | 0.6% |
| other | 108 | 10 | 0.7% | 0.3% |
| paid display | 51 | 4 | 0.3% | 0.1% |
| vendor / purchased list | 10 | 0 | 0.1% | 0.0% |
| paid search | 9 | 0 | 0.1% | 0.0% |
FY2024 — 22,264 touched persons
| Source Group | People | Applicants | % of Touched | % of Applicants |
|---|---|---|---|---|
| direct / unknown | 12,696 | 2,902 | 57.0% | 53.5% |
| organic search | 7,864 | 2,276 | 35.3% | 42.0% |
| organic social | 473 | 65 | 2.1% | 1.2% |
| paid / carnegie | 401 | 52 | 1.8% | 1.0% |
| 305 | 70 | 1.4% | 1.3% | |
| paid display | 205 | 24 | 0.9% | 0.4% |
| paid social | 152 | 1 | 0.7% | 0.0% |
| paid search | 101 | 23 | 0.5% | 0.4% |
| other | 54 | 6 | 0.2% | 0.1% |
| vendor / purchased list | 13 | 2 | 0.1% | 0.0% |
FY2025 — 22,543 touched persons
| Source Group | People | Applicants | % of Touched | % of Applicants |
|---|---|---|---|---|
| direct / unknown | 10,843 | 2,080 | 48.1% | 44.6% |
| organic search | 9,252 | 2,312 | 41.0% | 49.6% |
| paid display | 543 | 84 | 2.4% | 1.8% |
| paid / carnegie | 510 | 42 | 2.3% | 0.9% |
| paid social | 411 | 7 | 1.8% | 0.2% |
| 395 | 60 | 1.8% | 1.3% | |
| organic social | 329 | 41 | 1.5% | 0.9% |
| paid search | 189 | 24 | 0.8% | 0.5% |
| other | 36 | 7 | 0.2% | 0.2% |
| ai referral | 25 | 4 | 0.1% | 0.1% |
| vendor / purchased list | 10 | 2 | 0.0% | 0.0% |
The channel mix is diversifying over time. Direct/unknown shrank from 61.5% to 48.1% of touched persons as organic search grew from 27.7% to 41.0%. In FY2025, organic search overtook direct/unknown as the largest single source of applicants (49.6% vs. 44.6%).
All paid channels combined represent less than 5.5% of touched persons in any year, and less than 3.5% of applicants. No single paid channel exceeds 2.4% of touched persons.
Key Insight
Section titled “Key Insight”This funnel is not exposed to paid channel concentration risk. Paid vendors are individually too small to materially move application volume up or down — which also means budget cuts to any single vendor would not crater the pipeline.
The real concentration is in brand channels — organic search and direct/unknown together account for 90%+ of applicants in every year. This is structurally healthy: the institution is not dependent on any external vendor for pipeline. The shift underway (direct/unknown declining, organic search growing) is the right direction — it replaces weakly-attributed volume with clearly self-directed demand.
Why This Is Important
Section titled “Why This Is Important”A diversified channel mix is more resilient than one dependent on a single vendor or tactic. If a large share of applicants traces back to one paid channel, a budget cut, contract change, or platform policy shift can materially impact enrollment pipeline with little warning.
This metric is particularly relevant for board-level risk conversations because it quantifies exposure. It also identifies over-reliance on channels that convert below baseline — paying for volume that doesn’t convert is a different risk than paying for volume that does.
Methodology
Section titled “Methodology”Source group classification uses the same CASE logic as the first-touch application rate page. Concentration is measured two ways: share of all touched persons (funnel dependency) and share of applicants only (conversion dependency). The Herfindahl-Hirschman Index (HHI) is included as a single summary concentration score — higher values mean greater concentration.
WITH first_touch AS ( SELECT person_id, utm_source, utm_medium, ROW_NUMBER() OVER ( PARTITION BY person_id ORDER BY touched_at ASC ) AS rn FROM person_touches WHERE touch_category = 'engagement'),
source_groups AS ( SELECT person_id, CASE WHEN lower(utm_source) IN ('google', 'bing', 'yahoo', 'yahoo!', 'duckduckgo', 'ecosia', 'yandex', '360.cn', 'baidu') AND lower(utm_medium) IN ('organic', 'organic_search', 'search') THEN 'organic search' WHEN lower(utm_source) IN ('google', 'bing') AND lower(utm_medium) IN ('cpc', 'paid', 'paid_search', 'ppc') THEN 'paid search' WHEN lower(utm_source) IN ('googlead', 'mediately') OR lower(utm_medium) IN ('mediately', 'display', 'lightbox', 'banner') THEN 'paid display' WHEN lower(utm_source) IN ('carnegie-digital', 'carnegie', 'carnegie_digital') AND lower(utm_medium) IN ('ppc', 'paid-social', 'paid_social', 'cpc', 'display', 'lightbox', 'discovery', 'custom-content', 'video') THEN 'paid / carnegie' WHEN lower(utm_source) IN ('facebook', 'instagram', 'linkedin', 'youtube', 'tiktok', 'snapchat', 'twitter', 'reddit', 'meta') AND lower(utm_medium) IN ('paid', 'paid-social', 'paid_social', 'cpc') THEN 'paid social' WHEN lower(utm_source) IN ('facebook', 'instagram', 'linkedin', 'youtube', 'tiktok', 'snapchat', 'twitter', 'reddit') OR lower(utm_medium) IN ('social') THEN 'organic social' WHEN lower(utm_source) IN ('slate', 'gmail', 'miami-matters', 'mass_mailer', 'inbound-email', 'notifier', 'email', 'newsletter') OR lower(utm_medium) IN ('email') THEN 'email' WHEN lower(utm_source) IN ('nrccua', 'encoura', 'collegeboard', 'cappex', 'niche', 'niche.com', 'qs', 'usnews_studentconnect', 'hotcoursesinternational', 'idp', 'ziprecruiter') THEN 'vendor / purchased list' WHEN lower(utm_source) IN ('chatgpt.com', 'perplexity', 'claude', 'gemini', 'copilot.com') THEN 'ai referral' WHEN utm_source IS NULL OR utm_source = '' OR utm_source = '(none)' THEN 'direct / unknown' ELSE 'other' END AS source_group FROM first_touch WHERE rn = 1),
cohort AS ( SELECT pd.person_id, pd.fiscal_year, pd.applied, sg.source_group FROM persons_dashboard pd JOIN source_groups sg ON pd.person_id = sg.person_id WHERE pd.fiscal_year IN ('2023', '2024', '2025')),
totals AS ( SELECT fiscal_year, COUNT(*) AS touched_persons FROM cohort GROUP BY fiscal_year),
by_group AS ( SELECT c.fiscal_year, c.source_group, COUNT(*) AS people, SUM(CASE WHEN applied = 'Yes' THEN 1 ELSE 0 END) AS applicants, t.touched_persons FROM cohort c JOIN totals t ON c.fiscal_year = t.fiscal_year GROUP BY c.fiscal_year, c.source_group, t.touched_persons)
SELECT fiscal_year, source_group, people, applicants, ROUND(people * 100.0 / touched_persons, 1) AS pct_of_touched, ROUND(applicants * 100.0 / NULLIF(SUM(applicants) OVER (PARTITION BY fiscal_year), 0), 1) AS pct_of_applicantsFROM by_groupORDER BY fiscal_year, people DESC;