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 dateSQL 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?