Constraints

How to set up scheduling constraints

Updated over a week ago

Constraints are a PRO feature – PRO Features and how to upgrade

Note: In order to apply new or changed constraints, you will need to regenerate/reallocate your schedule (click 'retry allocation' or 'erase games' and then 'generate schedule').


Team Constraints

Team constraints are negative constraints. This means you're telling the scheduler what not to do.

e.g. you can say

  • do not schedule Honey Badgers on Saturday before 2pm; or

  • do not schedule Neon Ninjaz at the Field 2 after 10pm.

Generally speaking, you want to keep your constraints as simple as possible

e.g. if you're looking to keep a team from playing on Fridays, simply select the team and Friday and click save, leaving all other fields as their default values. 

You don't have to select all the fields and put in from 6pm to 10pm for instance when all your games happen from 6 to 10 pm anyways. In fact, if you did that and then added another time slot at 5pm, the team might get scheduled there. 

The same applies to blocking a venue for a team in general – just select the team and the venue and save – or blocking a time period, e.g. never schedule this team after 9pm – select the team and enter 9pm (21:00) for block from and leave block until at the default value of 23:59, which will apply the constraint until the end of the day.

If you want a team not to be scheduled before 12pm (noon), for instance, you would enter 12:00 in the block until box and leave block from at 00:00. This is very handy for teams arriving late to a tournament, for example. You can also select Saturday in this constraint, if this should only apply on that day.

You will see a more verbal description of your constraint once you've saved it – so just do a quick sanity check on that:

Coach Constraints

If you select multiple teams, you will see a checkbox below the teams selector to create a Coach Constraint. If you check this box, these teams will not be scheduled at the same time (presumably because they share the same coach – but of course this can be used for other scenarios, like a player joining multiple teams, for instance).

You can select other items in the same constraint, as in the example above, if those same blocks apply to all the same teams.

Note: In order to apply new or changed constraints, you will need to regenerate/reallocate your schedule.

  


Division Constraints

Division constraints are positive constraints – i.e. you're telling the scheduler for Division 1, only do this. 

Examples:

  • only use Field 1; or

  • only schedule before 8pm; or

  • only schedule on Fridays and Saturdays; or 

  • on Fridays, only schedule at Field 1, and only from 6-8pm; or

  • only schedule on Saturdays on Fields 1-3 (and do not schedule on any other days) [new option since August 2022]

Again, you want to only enter what's needed. For the first example (only use Field 1), you only want to select the division and Field 1 and click save

If selecting a weekday, make sure you select the appropriate option for your use case:

  • apply the constraint only on selected weekdays (leaving other weekdays open); or

  • only schedule on the selected weekdays (blocking other weekdays).

 

You can also apply a constraint only to a specific pool(s) within a division – just select the pool(s) instead of (or in addition to) the divisions.
​ 

Note: In order to apply new or changed constraints, you will need to regenerate/reallocate your schedule.


Wait Time – Min/max time between games

This lets you set a minimum rest period between each team's games (i.e. you can prevent back-to-back games with this); or a maximum wait time – to avoid having teams sitting around for hours on end (mostly useful for tournaments). 

Adjust the minimum by moving the left side of the slider, and the maximum by moving the right side of the slider.

You can also type into the fields below the slider to get more granular control.

A maximum of up to 18 hours applies only to games within the same day, i.e. a game 24 hours later would pass this constraint – it's meant to limit wait time between games within the same day. 

Setting a maximum greater than 18 hours will apply it to games across multiple days, e.g. 20 hours max would mean, if a team finished their last game today at 12pm, their next game would need to start by 8am tomorrow (within 20 hours).

If you put the maximum at 0 minutes (or something small), prepare for the schedule generation to end up with some unscheduled games – the constraint is enforced strictly, so if it isn't possible to create a schedule with strictly the maximum wait time you specify, you will get unscheduled games. Try being a little more generous (at least 1 or 2 time slots' worth) and regenerating your schedule.

The skip for playoffs checkbox turns the constraint off for knockout games to allow those to proceed without too much delay.


Note: in league schedules, constraints do not apply across weeks, i.e. setting a max of 7 days does not ensure that each team plays every week. In fact, the league scheduler treats weeks as entirely isolated and does not move games between weeks.

Give us a shout if you're running into trouble with this and we can see if switching to tournament mode would be the better route for your situation.


Max back-to-back games

Fairly self-explanatory. This determines how many back-to-back games a team is allowed to play before needing at least 1 game's worth of rest.

If you want to completely disallow back-to-back games, simply set a min time between games (see above).

The skip for playoffs checkbox turns the constraint off for knockout games to allow those to proceed without too much delay.
 


Note: In order to apply new or changed constraints, you will need to regenerate/reallocate your schedule.

 


Max Games Per Day

With the max games per day constraint, you can set a limit on how many games a team can play in a day.

You can set a general limit that applies to the entire schedule:

Under advanced options, you can also set a different number for any division, pool, or team as well set different limits for different days of the week:

 
Note: In order to apply new or changed constraints, you will need to regenerate/reallocate your schedule.

Constraints are a PRO feature – PRO Features and how to upgrade


General Notes About The Process

Constraints are how you tell the schedule maker what rules to take into account when generating your schedule.

Once you introduce constraints, you're making it harder to generate your schedule and you might see unscheduled games. You'll want to approach this as an iterative process.

Unscheduled games come in 2 variants that will be shown in red font in the venue slot of each game (above left-hand team):

  1. NO POSSIBLE TIME SLOTS – this indicates that your constraints blocked all time slots (for that week) so you want to either move that game to another week (if applicable, i.e. in league mode) or revise your constraints or schedule the game manually. We've made it easy to pause a constraint (click the green circle next to it), so you can try rerunning the allocation without that constraint and see how that changes the outcome.

  2. NOT YET SCHEDULED – this indicates that there were eligible time slots, but they are occupied by other games that it wasn't able to move elsewhere. This can sometimes be resolved by simply running the allocation again (click retry allocating games) or by regenerating the schedule (erase games > generate schedule) – the latter also regenerates pairings, so it changes the actual puzzle pieces, whereas the former just takes the same games / puzzle pieces and tries again to fit them together.

Note that the league (as opposed to tournament) scheduler is limited to moving games within the weeks they were generated for. If your league plays every Thursday and a team cannot play on a given date, for instance, their game that week will show as NO POSSIBLE TIME SLOTS and you will need to move it to a different week manually. In some of these cases the tournament scheduler might work better, as it is not limited to weeks. If you think this may be the case, please reach out and we can try that (without having to start from scratch).

Did this answer your question?