Time to Fill Calculator
Time to fill counted two ways: the roles you filled, and the roles you filled plus the ones still open. The second is the honest one.
Reads .xlsx and .csv inside your browser. Nothing is uploaded.
The requisition export
Drop a spreadsheet here
One row per requisition, with the date it opened and the date it was filled. Leave the fill date blank for roles still open.
The roles still open are the ones taking longest
Every recruiting report computes time to fill the same way. Take the requisitions that got filled, measure each one, average them. That drops every requisition still open, and those are not a random sample. They are the senior hire nobody can find, the role in the location nobody wants, the req that has been reposted twice.
What comes out is not how long it takes you to fill a role. It is how long the roles you managed to fill took. The distance between those two sentences grows with exactly the problem you were trying to measure, which is why a hiring backlog can get worse while the reported time to fill improves.
If a role has been open 90 days and is still open, it has not told you nothing. It has told you the answer for that role is more than 90. This tool uses that.
What the second number actually is
A Kaplan-Meier median, which is the standard treatment for durations where some have not finished yet. At each day a role was filled, the chance of filling then is the number filled divided by the number still waiting. Multiply those through and you get the share still unfilled at any point. The median is the day that share crosses a half.
A role still open at 90 days leaves the pool at 90 without being counted as filled, so it stops inflating the denominator afterwards rather than being deleted from the record. If more than half your roles are still open at the longest stretch your file covers, the tool says the answer is beyond that and declines to guess how far.
Cancelled requisitions are neither
A req closed without a hire is not a fill and is not a role still being worked. Counting it as a fill rewards giving up, and counting it as open inflates your backlog forever. Point the tool at your status column and they are set aside and counted separately. Without that column, a cancelled req looks identical to an open one and will age indefinitely.
Median before mean, and calendar days throughout
One impossible role drags a mean a long way and leaves a median almost still, so the median leads. Both are shown. Durations are calendar days, so weekends, holidays and hiring freezes are all inside the number, because they are all inside the wait.