What the solver does

When you click Solve, Rota Done uses a constraint solver to fill every unassigned shift slot in your rota. It works out who can cover what, given all the rules you have set, and assigns people to shifts automatically.

What the solver does What the solver does

What it respects

The solver always respects staff availability, contracted hour limits, minimum rest gaps between shifts, and explicit locks. It will not schedule someone on a day they are unavailable, and it will not exceed their contracted maximum hours.

What it does not move

Locked shifts are never moved or replaced by the solver. If you have pinned someone to a specific shift, that assignment stays in place and the solver works around it. Shifts with manually edited times are also preserved.

When it cannot find a solution

If the solver cannot fill the rota, it will show which shifts are still unassigned. The feasibility dashboard, available before solving, shows coverage gaps and exactly why they exist — not enough available staff, contracted hour limits, or rest rules blocking a particular person.

When it cannot find a solution When it cannot find a solution

Solving again after changes

You can solve as many times as you like. Each solve only fills unassigned slots — it does not move assignments you have already made manually or locked. To redo part of the rota, remove those assignments and solve again.

Solving again after changes Solving again after changes