TimeWise

TimeWise

Generate schedules for your workforce in less than 15 minutes- TimeWise was built as a proof-of-concept to spead awareness of linear programming, which is an underused problem-solving paradigm. We believe in LP because it's more precise than traditional methods. It guarantees the best possible outcome based on the defined constraints.

What is TimeWise?

It's an free open-source (FOSS) alternative to conventional scheduler-programs. It allows for complete control of the process and has adaptable constraints and objectives, as well as a simple UI to allow for fast, replicable results.

16 Users

4,17 stars based on 12 reviews
🧑‍🔬
👨‍🔬

How it works

The scheduler follows a simple structure where each week has days, every day has time slots, and every time slot has shifts. The time slots specifically are an abstraction to allow for multiple concurrent shifts.

To illustrate this, let's think of a hospital where we need a schedule. The hospital has three major working blocks each day (namely: early, late, and night shifts). In every working block, both the ER and OR need to be staffed. I.e. the working blocks are represented by time slots, while the shifts could account for different workplaces or differing departments when sharing one worker pool.

Constraint Options

There are a couple of parameters one can access in the scheduler. Like other ILP problems, this one requires a target function and constraints. All parameters for the problem can be accessed via the checkbox menu.

Expense Minimizing

This option is used to set the target function to minimize the objective value of staffing costs Staffing costs are just the sum of the product of every employee's hourly wage and the length of the shifts in which they work.

Strain Minimizing

To allow for approximate fairness between each employee, we introduced a strain value associated with each shift. Strain incentivizes the scheduler to distribute shifts more equally within the given constraints. The target function is, similar to the Expense Minimizing objective, just a sum of the sum of strain in the shifts they worked for every employee.

No double shift constraint

This constraint limits the use of every employee to 1 time per day. It should nearly always be turned on, unless you know what you are doing, as this might lead to workers' rights violations (in Europe, at least).

Maximum working hour constraint

This constraint is straightforward and limits the working hours per week of every employee to the value specified by the slider

Ensure qualified personnel constraint

This constraint only permits the scheduling of employees for the shifts their qualifications match. It is also the case for hybrid shifts. Both employees and shifts can require mixed qualifications.

For example, employee "Jeff" is both doctor and OR-qualified. That would qualify him for the OR Shift, which requires one doctor with OR qualifications, one anesthesiologist, and one surgeon. Employee "Hannah" on the other hand, is both a doctor, OR-qualified, and a surgeon and is, therefore, eligible for two of the positions in that shift.

Solution

If your model is solvable within the constraints (you will receive an error message if it isn't), a solution tree will appear. This solution tree consists of a list of the weeks, days, time slots, and shifts. If you expand it fully, you will then be able to see the names of the employees designated for a specific shift.

Alternatively, you can use the box to input an employee's name and filter their working days and shifts.

Read more on our Wiki
© 2025 TimeWise All rights reserved.
An error has occurred. This application may no longer respond until reloaded. Reload 🗙