In-Platform Lead Quality
Definition
Section titled “Definition”Application behavior of persons acquired through Meta in-platform lead ads — form completions that happen entirely within Facebook or Instagram and are imported into Slate via Zapier (a Carnegie-managed channel). These are tagged in_platform = 'Yes' in persons_dashboard. This page isolates their conversion performance from the rest of the funnel.
Summary
Section titled “Summary”In-platform leads convert at 1.01% — roughly one-seventeenth the rate of every other person in the funnel (17.6%). The population is large and has grown every year, making it a material drag on blended funnel metrics.
| Fiscal Year | In-Platform People | Applicants | Application Rate |
|---|---|---|---|
| 2023 | 1,547 | 18 | 1.16% |
| 2024 | 2,937 | 19 | 0.65% |
| 2025 | 4,805 | 32 | 0.67% |
The channel is not inherently broken — the problem is what the lead form captures. Breaking the population down by subsequent engagement reveals the mechanism:
| Engagement After Lead | People | Applicants | Application Rate |
|---|---|---|---|
| 0 engagement touches | 8,849 | 11 | 0.12% |
| 1–5 touches | 346 | 1 | 0.29% |
| 6–35 touches | 217 | 9 | 4.15% |
| 36+ touches | 128 | 75 | 58.59% |
93% of in-platform leads (8,849 of 9,540) never generate a single engagement touch after the lead form — they convert at 0.12%. But the 128 who did reach 36+ engagement touches convert at 58.6% — statistically identical to the engaged pipeline rate for the funnel as a whole.
Key Insight
Section titled “Key Insight”In-platform lead ads capture contact information without capturing intent. A person tapping a pre-filled form inside Facebook or Instagram has expressed far less than someone who navigated to the institution’s site and submitted an inquiry. The result is a large population that enters the CRM and then goes inert — 93% never return.
Crucially, the failure is not in the source but in the engagement that follows. When an in-platform lead does engage — reaching the same 36-touch threshold that predicts conversion everywhere else — they apply at 58.6%, right in line with the rest of the engaged funnel. The channel’s near-zero blended rate is a nurture and re-engagement problem, not a proof that these prospects are worthless. But at current re-engagement rates (7% reach any meaningful touch count), the channel delivers almost no applicants for the volume it generates.
Why This Is Important
Section titled “Why This Is Important”This population distorts every blended funnel metric it touches. It inflates total person counts, suppresses the overall application rate, and — because it grew from 1,547 to 4,805 persons across three years — a growing share of the funnel is effectively inert. The source group mix page shows the no-engagement-touch population doubling in FY2025; in-platform leads are a significant component of that growth.
For budget decisions, this is the clearest reallocation candidate in the dataset:
- The channel generates volume that does not convert — 9,540 leads for 96 applicants over three years
- The cost-per-applicant is therefore extremely high relative to organic search or engaged nurture
- The one lever that would change the math is re-engagement: the 128 who engaged prove the prospects can convert, but the channel produces them at a 1.3% rate
The strategic question for a CMO is whether in-platform lead spend is better redirected toward channels that generate self-directed, higher-intent prospects — or whether a dedicated re-engagement program could lift the 93% inert segment enough to justify continued acquisition.
Methodology
Section titled “Methodology”Persons are identified by the in_platform = 'Yes' tag in persons_dashboard, derived from the Zapier source format in Slate (see person tags). Application rate is applicants divided by total in-platform persons per fiscal year. The engagement breakdown joins to person_touches to count engagement touches accumulated after the lead was captured.
Application Rate by Fiscal Year
Section titled “Application Rate by Fiscal Year”SELECT fiscal_year, COUNT(*) FILTER (WHERE in_platform = 'Yes') AS in_platform_people, SUM(CASE WHEN in_platform = 'Yes' AND applied = 'Yes' THEN 1 ELSE 0 END) AS applicants, ROUND( SUM(CASE WHEN in_platform = 'Yes' AND applied = 'Yes' THEN 1 ELSE 0 END) * 100.0 / NULLIF(COUNT(*) FILTER (WHERE in_platform = 'Yes'), 0), 2 ) AS application_rateFROM persons_dashboardGROUP BY fiscal_yearORDER BY fiscal_year;Application Rate by Subsequent Engagement
Section titled “Application Rate by Subsequent Engagement”WITH touch_counts AS ( SELECT person_id, COUNT(CASE WHEN touch_category = 'engagement' THEN 1 END) AS engagement_touches FROM person_touches GROUP BY person_id)
SELECT CASE WHEN COALESCE(tc.engagement_touches, 0) = 0 THEN '0 engagement touches' WHEN tc.engagement_touches BETWEEN 1 AND 5 THEN '1-5' WHEN tc.engagement_touches BETWEEN 6 AND 35 THEN '6-35' ELSE '36+' END AS engagement_bucket, COUNT(*) AS people, SUM(CASE WHEN pd.applied = 'Yes' THEN 1 ELSE 0 END) AS applicants, ROUND(SUM(CASE WHEN pd.applied = 'Yes' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS application_rateFROM persons_dashboard pdLEFT JOIN touch_counts tc ON pd.person_id = tc.person_idWHERE pd.in_platform = 'Yes'GROUP BY 1ORDER BY MIN(COALESCE(tc.engagement_touches, 0));