What is source quality, and how do you measure it in Metabase?
Source quality is an HR and recruiting metric you can track in Metabase once ATS or HRIS data is synced into a database. Source quality measures whether a recruiting source produces qualified candidates and hires, not just volume. It keeps sourcing decisions tied to outcomes instead of top-of-funnel noise.
What does a source quality chart look like in Metabase?
Rank sources by how their applications convert — the interview rate and the application-to-hire rate side by side per source — and quality reads top to bottom: referrals converting at 6% to hire against LinkedIn's 2.4%. The job boards row is the shape this metric exists to expose: the source that floods the funnel converts almost nobody, which is why volume alone can't rank your sourcing spend.
How is source quality defined?
- Start with applications by source, then layer qualified, interview, offer, and accepted-hire outcomes.
- Use rates and counts together: high conversion on tiny volume can mislead.
- Compare sources within similar roles, locations, and seniority bands.
- Use downstream retention or performance only when legally and ethically appropriate.
What data does it need?
- Application source or source attribution field.
- Application stage and outcome data, ideally with stage history.
- Offer and accepted-hire outcomes tied to applications.
- Role, department, seniority, location, and recruiter fields for segmentation.
SQL pattern
SELECT
COALESCE(source, 'Unknown') AS source,
COUNT(*) AS applications,
COUNT(*) FILTER (WHERE reached_interview) AS interviewed,
COUNT(*) FILTER (WHERE offer_extended_at IS NOT NULL) AS offers,
COUNT(*) FILTER (WHERE offer_accepted_at IS NOT NULL) AS accepted_hires,
ROUND(100.0 * COUNT(*) FILTER (WHERE reached_interview) / NULLIF(COUNT(*), 0), 1)
AS interview_rate_pct,
ROUND(100.0 * COUNT(*) FILTER (WHERE offer_accepted_at IS NOT NULL) / NULLIF(COUNT(*), 0), 1)
AS application_to_hire_pct
FROM modeled_applications
WHERE application_created_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY 1
HAVING COUNT(*) >= 10
ORDER BY accepted_hires DESC, application_to_hire_pct DESC;