Employee leave and attrition statistics model

I have the following human resources problems and was hoping to solve it using statistics.

Our employees often take leave from work for weeks or months at a time. This significantly impacts the number of shifts we need to fill and this leaves us with the problem of being understaffed therefore impacting the performance of the business. In addition to leave we also have the problem of employees resigning from their position.

To fill in these gaps, we need to recruit additional workers, to ensure the business isn't impacted. I need a model that would help us identify/predict when we need to start recruiting before an employee decides to go on leave or resign. In addition it would be good to predict how long someone will go on leave so we can understand whether we need to recruit someone who can do 2 months of work or 6 months of work etc. Also would be good to get an understanding of any trends, such as, is there a particular time of year when this occurs.

The first thing that comes to mind is a cox proportional model just not sure how to go about that and is this the best approach? And how would the data need to be setup. With the outcome being time to an event, how can I make a distinction between leave or resignation, or would I need two models for that?

Are there any whitepapers or articles, you recommend, where a similar problem was solved using statistics that I can have a read through?


Fortran must die
I suspect you could address this easier with queuing models or linear programing maybe than statistics. Although I have only seen these used in cross sectional formats not time series. they would support determining how many servers you needed I suspect.

I think you could probably create a time series that showed how much time was likely going to be missing based on past trends (exponential smoothing or ARIMA would support that). Then if you know how many hours you need in any given period you could estimate how many hours would be lacking. Knowing how many people you need could be tied to this; you can look at past hiring data to decide how long on average it took to hire, although issues of talent availability and economic change might influence this.

Cox shows, as far as I know, how likely people are to leave given they have not already. That would be one way to know how many people were likely to be missing. If you already have good data on how many leave in a given period (and if this relationship does not change over time much) I am not sure you really need this method.
I could do an ARIMA model that would help us identify the trends and what periods of the year where we see increases in the number of shifts we need to fill. However this would look at the data overall for all employees collectively and not be a person by person case.

The Cox model - and you can correct me here - can determine when (from signing up) they will leave or resign for each employee specifically. But I just wonder how we could approach this when an employee has multiple events during their tenure. That is, someone may go on leave for 3 months then they return to work and then they might go on leave again for 1 month and so on.

Queuing models or Linear programs, while am familiar with these, just need to refresh my memory on how we can utilise these methods.


Fortran must die
I am not sure why the total number of people (hours) you need won't meet your needs (it's certainly a lot easier). :p That said, the standard cox only deals with a single departure (it deals most commonly with dying). But if someone comes back you can treat them as a new case - for which cox should work fine.