← All field notes

Hiring guide / Metix AI field notes

Recruitment funnel metrics: count one cohort at a time

Give each contact the same observation time, keep the people and stage definitions consistent, and put the denominator next to every rate.

9 min read
A charcoal counting tray with transparent dividers and paper tokens beside an indigo waiting compartment with a clock symbol.
A charcoal counting tray with transparent dividers and paper tokens beside an indigo waiting compartment with a clock symbol. Conceptual illustration, created with AI. Token counts do not represent the example data.

The short version

Divide next-stage people by preceding-stage people from the same mature contact cohort. The local calculator and synthetic CSV use a fixed fourteen-day horizon, withhold recent fast converters and stop on incomplete stage chains.

Decision guide

Who is in the denominator?

  1. Define the cohort

    Choose one role, contact-entry window, cutoff and follow-up horizon.

  2. Check the history

    Use first reached dates and reconcile duplicates or missing stages.

  3. Read the counts

    Show numerators and denominators before investigating individual cases.

Synthetic example, not a benchmark. Fixed-horizon conversion does not estimate eventual hires, quality or causality.

Metix AI publishes this guide and sells recruiting software. Sources and product scope checked October 26, 2026. Every recruiting record and percentage in the worked example is synthetic.

Calculate stage conversion from one cohort

For a recruitment funnel conversion rate, divide the people who reached the next stage by the people who reached the preceding stage, using the same cohort and observation window, with both counts displayed beside the percentage.

If six of eight people contacted for one role reply within fourteen days, the cohort reply rate is 6 ÷ 8 × 100 = 75.0%. If four of those six express interest in the actual role, reply-to-interest conversion is 4 ÷ 6 × 100 = 66.7%. A location question still needs an answer. It establishes neither interest nor qualification.

This guide measures an outbound funnel: contacted, replied, interested, booked, held, offered and accepted. It starts with an actual sent message. Inbound applicants, careers-page visitors and advertising impressions need different entry definitions. Keep them in separate reports.

Download the local Python calculator, the editable example CSV, expected results and the field dictionary and instructions. The files work without a Metix account or a connection to an ATS.

Set the observation window before comparing stages

Five interviews held this week divided by twenty people contacted this week is a ratio of activity. Some interviewees may have entered the funnel last month. That calculation cannot tell you what happened to this week's twenty contacts.

Choose one contact-entry window and a follow-up horizon. Count stage events through the same number of days after each person's first contact, withholding anyone whose follow-up period has not ended by the reporting cutoff. Include them when they mature in a later report. This is a fixed-horizon conversion rate, not an estimate of eventual progression. Fourteen days is an example, not a hiring target. A slow offer can fall outside it even when the process is working.

Every included person gets the full follow-up period, so a recent contact who has already accepted an offer waits for inclusion alongside a contact who has yet to reply. Including those successes while withholding recent people still waiting would favor fast converters.

Ashby's guide to establishing recruiting metrics argues for understanding the decision behind a report and building internal baselines. The calculation here supplies one explicit definition for that conversation. It is not an Ashby benchmark or an export of its dashboard.

Run the fourteen-day example

The download contains ten invented people contacted for DEMO-ROLE between October 1 and October 25, 2026, with a reporting cutoff of October 26. Eight have completed fourteen days of follow-up and two recent contacts have not, so the same eight people supply every stage count below. P09 already accepted an offer but is still withheld because its observation period is incomplete. P02's offer on October 21 and P03's held interview on October 20 fall after their individual day-14 deadlines; those events do not enter the corresponding stage counts.

Synthetic example, events through day 14 after each first contact
TransitionCalculationConversion
Contacted to replied6 / 875.0%
Replied to interested4 / 666.7%
Interested to booked3 / 475.0%
Booked to held2 / 366.7%
Held to offered1 / 250.0%
Offered to accepted1 / 1100.0%
Contacted to accepted1 / 812.5%

Save the four downloads in one local folder. With Python 3 installed, run:

python3 recruitment-funnel-metrics.py recruitment-funnel-example.csv --role DEMO-ROLE --start 2026-10-01 --end 2026-10-25 --as-of 2026-10-26 --days 14 > results.csv

Open results.csv beside the expected results. The first audit rows show ten contacts, two withheld and zero identical duplicates. Then check the stage counts: 8, 6, 4, 3, 2, 1, 1. For your own data, replace the CSV, role ID, entry dates, cutoff and horizon. The script reads the local file and prints aggregate results, which you can review in a spreadsheet without connecting to a service or sending it candidate records.

The final row asks how many contacted people accepted by day 14. Offer acceptance asks how many issued offers were accepted within that horizon. One offer cannot establish a reliable benchmark.

Every clock here starts at first contact. An offer issued on day 13 has only one day left to be accepted within this report. To study acceptance after an offer, build a separate cohort starting on the offer date and choose an offer follow-up period; do not compare that result with this contact-based rate.

Recruitee's recruiting funnel guide covers awareness through hiring and names metrics at each stage. An application-to-interview ratio answers a different question from contact-to-booking conversion. This guide does not adopt the article's visitor-to-application or applicant-to-interview benchmark percentages.

Prepare your dates

Use one row per person and role. Keep the first reached dates and a stable pseudonymous person ID across sources, so repeated messages and merged exports do not inflate the number of people. Keep names and contact details out of this CSV by storing the identity mapping in your authorized records, where a reviewer can check the underlying events.

Use YYYY-MM-DD dates after converting events into one documented calendar/timezone. Entry dates and the day-14 endpoint are inclusive. The downloadable field dictionary defines every stage. Count human replies, excluding auto-replies and delivery notices; count interest only after explicit agreement to explore the actual role. Keep these definitions unchanged when comparing reports.

Count a person once at each stage, whether you send several follow-up messages before they reply or reschedule the same interview slot more than once. An interview counts as held only when it actually took place. An accepted offer is not proof that employment started.

The script ignores identical repeated rows and reports how many it removed, but it stops when rows disagree or when dates reveal a missing predecessor, reverse chronology or an event after the cutoff. Repair the records before calculating. It cannot detect two different IDs assigned to the same person. This map requires every preceding stage. If your process legitimately skips one, define a different map; do not invent an interest or booking date. A blank means no event recorded by the cutoff. Repair incomplete exports before interpreting a blank.

Investigate the cases behind a rate

A zero denominator makes the rate unknown, whereas zero progressions out of eight contacts with complete history is a valid 0% for that cohort and horizon. Keep missing data and a measured lack of progression separate.

A lower rate needs a case review. It does not identify the cause. Compare similar roles under the same definitions and horizon. If the dashboard hides counts, get them from the underlying record before interpreting a percentage.

For a gap between replies and interest, read the actual questions with the hiring owner. A location or compensation mismatch may need a clearer brief. For a gap between booking and attendance, review cancellations and scheduling communications before changing sourcing.

Choose one follow-up action that the cases support and record who owns it. For example, ask the hiring owner to confirm the work model before revising the outreach message. Keep selection standards intact while you test that change. Small counts, different role difficulty and incomplete records can all move a ratio without a tool or recruiter causing it.

Use elapsed-time measures to examine waiting and cost per hire to examine spending. A conversion rate does not replace either measure or establish candidate quality.

Keep the reporting and recruiting jobs separate

A manual log may be enough for a small role. Keep applications, interview outcomes and offers in your ATS or other recruiting record; this CSV provides an independent calculation format rather than a verified Metix import.

Consider Metix when your team needs help carrying an open role from sourcing through interview booking. In the current workflow, you define the brief, review supporting evidence and approve outreach. Mira handles sourcing, interest screening and interview booking. Your team keeps the recruiting record, conducts interviews, issues offers and makes the hiring decision. This guide does not demonstrate a Metix funnel dashboard, an ATS integration or an automatic export.

Metix staff do not review self-serve shortlists. If you need someone on the Metix team to run the search from day one, discuss Delivery as a separate service quoted on a demo. The calculator does not require either purchase and makes no claim about expected conversion.

Use one approved role

Define the work and constraints, review the matching evidence and approve the proposed outreach before it sends.

Create a hiring role Discuss separately quoted Delivery

How do you calculate recruitment funnel conversion rates?

Divide people reaching the next stage by people reaching the preceding stage, using the same cohort, stage definitions and observation horizon. Show both counts. This guide measures outbound first-contact cohorts, not careers-site visits or inbound applications.

Why exclude recent candidates who already converted?

A fixed-horizon report waits until every included person has completed the same follow-up period. Including recent fast converters while withholding recent people still waiting would favor fast outcomes. Report the withheld count and include those contacts when they mature.

Is a booked interview the same as a held interview?

No. Booked means a confirmed slot; held means the interview actually took place. Count each person-role pair once at each first reached stage. Reschedules do not create additional people.

What is a good recruitment funnel conversion rate?

This guide provides no universal benchmark. The synthetic example is a calculation demonstration, not observed customer performance. Compare similar roles with the same definitions and follow-up horizon, show small denominators and inspect actual cases before attributing a change to a tool or recruiter.

Does the calculator connect to Metix or an ATS?

No. It reads a local CSV and writes aggregate results without network requests. It is not a verified Metix import or dashboard. Use your recruiting record for interviews and offers. Metix optionally runs sourcing through employer-approved outreach and booking; staff-run Delivery is separately quoted.

MA

About the editorial team

Metix AI editorial team

Research & buying guides

The Metix AI editorial team writes hiring guides and product comparisons. We publish source dates, distinguish vendor claims from observations, and keep worked examples separate from measured outcomes. Metix AI also sells recruiting software.