How to calculate Time to Hire

Time to hire is the number of days from a candidate entering the hiring process to accepting an offer.

Formula

Time to hire = offer accepted date − application date

SQL query

This example assumes: applications(id, job_id, applied_at, offer_accepted_at). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.

SELECT job_id,
       COUNT(*) AS hires,
       AVG(offer_accepted_at::date - applied_at::date) AS avg_days
FROM applications
WHERE offer_accepted_at IS NOT NULL
GROUP BY job_id
ORDER BY avg_days DESC;

Common mistakes that make Time to Hire wrong

  • Time to fill (from job opening) and time to hire (from candidate application) differ; choose one.
  • Roles still open are excluded, which flatters the average.
  • Referral candidates often enter late in the process; segment by source.

Ask for Time to Hire in plain English

Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.

  • What is average time to hire by department?
  • Which roles are taking the longest to fill?

Frequently asked questions

What is Time to Hire?
Time to hire is the number of days from a candidate entering the hiring process to accepting an offer.
How do you calculate Time to Hire?
Time to hire = offer accepted date − application date. The SQL example on this page shows the same calculation against a simple table.
What commonly goes wrong when calculating Time to Hire?
Time to fill (from job opening) and time to hire (from candidate application) differ; choose one.