calltime + 8 < plannedwrap = 150% That evaluation-procedure IS the rulseset. A simple switch-case statement will let us pick between which ruleset to use. It will take basic info as arguments (previous_wrap, calltime, wraptime, planned_wrap) And output a workday, full of finished slices