Skip to content

Paid Media - Time to Application

The number of days between a person’s first recorded marketing touch and the date they submitted an application, broken out by whether they were ever exposed to paid media.

This page contains two related but distinct analyses:

  • Time to application — how many days elapsed between first touch and application submission, for paid-exposed vs. non-exposed applicants
  • Conversion rates by exposure group — what share of touched persons applied, by exposure group

Together they answer: does paid media affect how quickly and how often prospects convert?

Exposure GroupApplicantsAvg Days to ApplyMedian Days to ApplyMinMax
paid_exposed2,632136.467.011,629
not_exposed15,03076.035.011,732

Paid-exposed applicants took considerably longer to apply on average (136 days) than non-exposed applicants (76 days), but the median tells a more grounded story — 67 days vs. 35 days. The gap between mean and median in the paid group suggests a long right tail: a subset of paid-exposed applicants took a very long time to convert, pulling the average up. Paid media is reaching people early in a long consideration cycle, not close to the decision point.

Exposure GroupTotal PersonsApplicantsApplication Rate
paid_exposed11,6962,95125.2%
not_exposed76,06420,13226.5%

When limited to persons with at least one recorded touch, blended paid media converts at 25.2% — slightly below the 26.5% non-exposed rate. This is not a sign that paid media underperforms. It is a cohort-maturity artifact: the paid population now includes EDDY, a performance vendor whose campaign ramped in mid-October 2025, adding thousands of recently acquired leads that have not yet had time to convert. The by-year breakdown isolates the effect to FY2026:

Fiscal YearPaid PersonsPaid RateNon-Paid PersonsNon-Paid RateWinner
20231,55719.5%13,48826.1%non-paid
20241,73436.5%20,53223.3%paid
20252,71128.2%19,84019.6%paid
20264,20317.9%10,21419.2%non-paid*

Paid media beats the non-exposed baseline decisively in FY2024 and FY2025. FY2026 shows paid slightly behind — but only because of the immature EDDY cohort. Excluding EDDY, FY2026 performance paid converts at 33.4%, well above the 19.2% non-paid baseline and the strongest paid year on record. EDDY’s own conversion rises steadily with cohort age (3.8% under 30 days → 14.3% at 180+ days), confirming the FY2026 leads are young, not weak.

Blended paid media conversion (25.2%) sits just under the non-exposed baseline (26.5%) when pooled across all years — but that pooled figure is distorted by cohort timing, not channel quality. Performance paid media beat the baseline handily in FY2024 (36.5% vs. 23.3%) and FY2025 (28.2% vs. 19.6%), and FY2026 performance paid — excluding the young EDDY cohort — is the strongest yet at 33.4%. The apparent FY2026 shortfall is a large volume of recently acquired EDDY leads (campaign ramp mid-October 2025, microsite January 2026) that have not yet matured through the conversion window. The board-level read: performance paid media is working, and the FY2026 EDDY investment should be re-evaluated once its cohort ages rather than judged on a censored partial-year snapshot.

Time-to-application is a proxy for funnel velocity. Understanding how paid media affects that timeline has direct implications for budget timing, campaign sequencing, and how we interpret last-touch attribution.

This metric helps us:

  • Determine whether paid media is reaching prospects earlier in the decision cycle
  • Avoid misreading a longer time-to-apply as a sign of lower intent — it may reflect earlier funnel entry
  • Calibrate expectations for how long paid campaigns should run before conversion is expected
  • Inform decisions about when to suppress or redirect paid spend for audiences already in the funnel

This analysis should not be interpreted as proof that paid media caused slower conversions. Paid-exposed audiences may differ from non-exposed audiences in important ways, including geographic reach, inquiry source, or program interest. The longer timeline likely reflects when in the decision process paid media first reached them, not a negative effect on intent.

The query identifies each applicant’s first recorded touch date and their application date. Days to apply is the difference between those two dates, limited to cases where the application came after the first touch.

Each applicant is assigned to either paid_exposed (tagged in person_tags with tag_type = 'paid_exposed') or not_exposed. The time-to-apply query then calculates average days, median days, and the min/max range for each group.

The conversion rate query uses the same exposure grouping but operates across the full population rather than just applicants, limited to persons with at least one recorded touch. This removes list imports and one-ping prospects who never meaningfully engaged — a population that would otherwise dilute the not_exposed application rate and overstate the lift from paid media.

WITH first_touch AS (
SELECT
person_id,
MIN(touched_at) AS first_touch_at
FROM person_touches
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
),
paid AS (
SELECT DISTINCT
person_id
FROM person_tags
WHERE tag_type = 'paid_exposed'
),
timeline AS (
SELECT
ft.person_id,
CASE
WHEN p.person_id IS NOT NULL THEN 'paid_exposed'
ELSE 'not_exposed'
END AS exposure_group,
ft.first_touch_at,
a.applied_at,
datediff(
'day',
CAST(ft.first_touch_at AS DATE),
CAST(a.applied_at AS DATE)
) AS days_to_apply
FROM first_touch ft
JOIN applied a
ON ft.person_id = a.person_id
LEFT JOIN paid p
ON ft.person_id = p.person_id
WHERE a.applied_at >= ft.first_touch_at
)
SELECT
exposure_group,
COUNT(*) AS applicants,
ROUND(AVG(days_to_apply), 1) AS avg_days_to_apply,
ROUND(MEDIAN(days_to_apply), 1) AS median_days_to_apply,
ROUND(MIN(days_to_apply), 1) AS min_days,
ROUND(MAX(days_to_apply), 1) AS max_days
FROM timeline
GROUP BY 1;

Compares application rates between paid-exposed and non-exposed persons, limited to persons with at least one recorded touch. This filters out list imports and low-intent prospects who never meaningfully engaged, reducing the population bias that would otherwise inflate the apparent lift of paid media.

WITH touched AS (
SELECT DISTINCT
person_id
FROM person_touches
),
paid AS (
SELECT DISTINCT
person_id
FROM person_tags
WHERE tag_type = 'paid_exposed'
),
applied AS (
SELECT DISTINCT
person_id
FROM person_tags
WHERE tag_type = 'applied'
AND tag_value = 'Yes'
),
labeled AS (
SELECT
p.id AS person_id,
CASE
WHEN pd.person_id IS NOT NULL THEN 'paid_exposed'
ELSE 'not_exposed'
END AS exposure_group,
CASE
WHEN a.person_id IS NOT NULL THEN 1
ELSE 0
END AS applied
FROM persons p
JOIN touched t ON p.id = t.person_id
LEFT JOIN paid pd ON p.id = pd.person_id
LEFT JOIN applied a ON p.id = a.person_id
)
SELECT
exposure_group,
COUNT(*) AS total_persons,
SUM(applied) AS applicants,
ROUND(SUM(applied) * 1.0 / COUNT(*), 3) AS application_rate
FROM labeled
GROUP BY 1
ORDER BY 1;

Conversion Rates by Exposure Group and Fiscal Year

Section titled “Conversion Rates by Exposure Group and Fiscal Year”

Splits the same touched-population comparison by fiscal year, which reveals that paid media beats the baseline in FY2024–2025 and only trails in FY2026 as low-converting lead-gen volume surges.

WITH touched AS (
SELECT DISTINCT person_id FROM person_touches
),
paid AS (
SELECT DISTINCT person_id FROM person_tags WHERE tag_type = 'paid_exposed'
),
applied AS (
SELECT DISTINCT person_id
FROM person_tags
WHERE tag_type = 'applied' AND tag_value = 'Yes'
),
labeled AS (
SELECT
pd.person_id,
pd.fiscal_year,
CASE WHEN p.person_id IS NOT NULL THEN 'paid_exposed' ELSE 'not_exposed' END AS exposure_group,
CASE WHEN a.person_id IS NOT NULL THEN 1 ELSE 0 END AS applied
FROM persons_dashboard pd
JOIN touched t ON pd.person_id = t.person_id
LEFT JOIN paid p ON pd.person_id = p.person_id
LEFT JOIN applied a ON pd.person_id = a.person_id
WHERE pd.fiscal_year IN ('2023', '2024', '2025', '2026')
)
SELECT
fiscal_year,
exposure_group,
COUNT(*) AS persons,
SUM(applied) AS applicants,
ROUND(SUM(applied) * 100.0 / COUNT(*), 1) AS application_rate
FROM labeled
GROUP BY 1, 2
ORDER BY fiscal_year, exposure_group;