Skip to main content

Intraday Solver Constraints

A deep dive into the constraints that make the intraday auto-scheduler work it's magic

Olaf Jacobson avatar
Written by Olaf Jacobson
Updated yesterday

Constraints are the rules you set for each activity. By combining these rules, you tell the intraday solver exactly how to build your perfect schedule. This guide explains what each constraint does and how to use it effectively.

The 7 Core Constraints

Here is a breakdown of each constraint available in the solver.

1. User Filter

  • What it is: Restricts an activity (and all its rules) to specific people.

  • How to use it: By default, a rule applies to everyone on the board. Use this filter to select specific users or, more efficiently, User Groups (e.g., "French Speakers," "Team Leads").

  • Practical Example: To schedule a "French Chat" activity, use the User Filter to select the "French Speakers" user group.

2. Time Window

  • What it is: Defines when an activity is allowed to be scheduled.

  • How to use it:

    • Absolute Time: Schedules the activity within a fixed time of day (e.g., between 10:00 AM and 11:00 AM).

    • Relative Time: Schedules the activity based on an individual's shift (e.g., between 2 and 4 hours after their shift starts).

  • Practical Example: Use Absolute Time for a "Team Meeting" (10:00 AM - 11:00 AM). Use Relative Time for "Breaks" (e.g., must be taken 3-5 hours after a user's shift begins).

3. Time Required

  • What it is: Sets the total volume of work that needs to be scheduled for an activity.

  • How to use it:

    • Total (Team): Sets the total number of hours for the entire team for the day (e.g., a total of 20 hours of "Email" must be scheduled).

    • Per User: Sets the number of hours each individual must be assigned (e.g., each user gets 1 hour of "Admin Work").

  • Practical Example: Give "Email" a Total of 20 hours and "Admin Work" a Per User requirement of 1 hour.

4. Occurrences

  • What it is: Limits how many times (in separate blocks) an activity can be assigned.

  • How to use it:

    • Total (Team): Limits the total number of assignments for the entire team.

    • Per User: Limits the number of assignments for each individual.

  • Practical Example: For "Breaks," set Per User to a minimum and maximum of 1. This ensures every user gets exactly one break.

5. Staffing Requirements

  • What it is: Tells the solver how many people you need on an activity at specific times (using the staffing data you've already configured for that activity).

  • How to use it:

    • Minimum: Ensures you have at least the required number of people. The solver can schedule more if needed.

    • Maximum: Ensures you have no more than the required number (prevents overstaffing).

    • Exact: Forces the solver to match your staffing requirements perfectly.

  • Practical Example: Use Exact for your "Phone Support" activity to precisely match your forecast.

6. Concurrency

  • What it is: Limits how many users can be doing the same activity at the same time.

  • How to use it: This is set as a percentage of your total team (e.g., 25%).

  • Practical Example: Set "Break" concurrency to 30% to prevent the entire team from taking a break at once and leaving your queues unattended.

7. Consecutive Time

  • What it is: Defines the length of a single, uninterrupted block of an activity. This is key to preventing fragmented schedules.

  • How to use it: Set a Minimum and/or Maximum duration.

  • Practical Example:

    • Breaks: Set Minimum to 30 minutes and Maximum to 30 minutes to create exact 30-minute breaks.

    • Projects: Set Minimum to 2 hours to ensure people get meaningful focus time and avoid constant context switching.


💡 Pro-Tips: Soft Constraints & Avoiding Errors

Use Soft Constraints for Flexibility

  • What they are: A Hard Constraint (the default) is a rule that must be followed. If the solver can't satisfy it, it will fail. A Soft Constraint is a preference—the solver will try to follow it but can bend the rule if necessary to find a solution.

  • When to use them: Use them for preferences, not critical requirements. For example, setting "Break Concurrency" as a soft constraint is a great idea. It tells the solver, "I prefer you don't schedule more than 30% of my team on break, but if you must briefly go to 35% to make the schedule work, that's okay."

⚠️ Warning: Avoid Contradictions (Infeasibility)

The solver is logical. If you give it impossible rules, it will fail. Be careful that your constraints don't contradict each other.

Example of a Contradiction:

  1. You set Time Required for "Project X" to a minimum of 10 hours.

  2. You set Occurrences (Total) to a maximum of 1 (it can only be scheduled once).

  3. ...but no single user on your team works for 10 hours straight.

The solver has no way to schedule a 10-hour block for a single occurrence and will fail. Always double-check that your rules are possible to solve.


📺 Video Tutorial: Constraints Explained

For a detailed walkthrough of every constraint, watch our training video.

1. Introduction to Constraints 0:00

  • Overview of the video purpose: to explain constraints in the intro day solver.

  • Importance of understanding each constraint for effective scheduling.

2. User Filter 0:08

  • Allows application of constraints to specific users or user groups.

  • Useful for targeting activities to subsets of the team.

3. Time Window 1:12

  • Two modes: absolute time and relative time.

    • Absolute time: specific time set for activities.

    • Relative time: based on individual user start times.

  • Duration can be set from a specified start time.

4. Time Required 3:03

  • Two modes: total for the entire team or per user.

  • Minimum and maximum hours can be set for activities.

5. Occurrences 5:03

  • Limits the number of times an activity can be assigned.

  • Can be set as total for the team or per user.

6. Staffing Requirements 8:06

  • Specifies the number of users needed for an activity.

  • Three types: minimum, maximum, and exact requirements.

7. Concurrency 10:00

  • Limits how many users can be assigned to an activity at the same time.

  • Helps prevent too many users from doing the same task simultaneously.

8. Consecutive Time 11:00

  • Defines how long an activity can be scheduled.

  • Minimum and maximum durations can be set to avoid context switching.

9. Soft Constraints 12:20

  • Allows constraints to be flexible if necessary.

  • Prioritization can be added to give weight to certain constraints.

10. Conclusion 12:55

  • Recap of the importance of understanding and correctly applying constraints.

  • Encouragement to consider combinations of constraints for effective scheduling.

Did this answer your question?