EnableYourData.com

KPI · HR

Time to hire: formula and example.

Time to hire is the number of days it takes to fill a vacancy. In practice it is usually measured from opening the vacancy to the accepted offer; strictly speaking that is time to fill, while time to hire starts when the chosen candidate first entered the process. The figure shows how long work goes uncovered and how quick your recruitment process is.

Time to hire formula

Sum of (date filled − date opened) across filled vacancies ÷ number of filled vacancies

Worked example

Acme Groothandel filled 24 vacancies in 2025. Together they were open for 1,008 days. The average time to hire is 1,008 ÷ 24 = 42 days.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A shorter time means roles are filled sooner and you are less likely to lose strong candidates to another employer. Compare by job family, because a warehouse operative is usually found faster than a specialist. Also look at the median and at which step takes longest: screening, interviews or decision-making.

Pitfalls with time to hire

  • Using time to hire and time to fill interchangeably; record which starting point you measure from.
  • Including vacancies that were withdrawn or are still open.
  • Showing only the average when a few hard-to-fill roles drive the figure.

SQL & DAX

Calculating time to hire in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('quarter', filled_at)::date AS quarter,
       COUNT(*) AS filled_vacancies,
       ROUND(AVG(filled_at::date - opened_at::date), 1) AS avg_days_to_fill,
       PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY filled_at::date - opened_at::date) AS median_days
FROM vacancies
WHERE filled_at IS NOT NULL
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Filled Vacancies = CALCULATE ( COUNTROWS ( Vacancies ), NOT ISBLANK ( Vacancies[FilledAt] ) )
Avg Days to Fill =
DIVIDE (
    SUMX ( FILTER ( Vacancies, NOT ISBLANK ( Vacancies[FilledAt] ) ), DATEDIFF ( Vacancies[OpenedAt], Vacancies[FilledAt], DAY ) ),
    [Filled Vacancies]
)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for time to hire per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

What is the difference between time to hire and time to fill?

Time to fill runs from opening the vacancy to the accepted offer. Time to hire runs from when the eventually chosen candidate came into view, for example when they applied. Time to fill tells you more about the vacancy as a whole, time to hire about the speed of your selection.

How do you calculate average time to hire?

For each filled vacancy, calculate the number of days between the start and end point and take the average. Only use vacancies filled within the period. Show the median as well to spot outliers.

How can you shorten time to hire?

First find out which step takes the most time, such as responding to applicants, scheduling interviews or making the decision. Agreeing fixed turnaround times per step and grouping interviews often helps. Then measure per step whether the time comes down.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.