A further enhancement to our scheduling features is the ability to add preferences for specific dates and times and/or restrict the playing days and times of individual teams, divisions, programs and officials (officials can only be restricted as they have an availability calendar function already). From the Scheduling Constraints tab on numerous screens, constraints can be added. There are 5 different types, all illustrated in the image below. With each type, the constraint can be added as a preference constraint, a date/time that the team would prefer to play, or as a blackout date/time that the team cannot play. You can add combinations of the two types to provide a great deal of flexibility. With preference constraints, a ranking can also be added. The higher the ranking, the more likely the preference constraint will be used.
A start and end time a team prefers or cannot play for every day of the week can be added. In the example above, this team prefers to play from 7:00-9:00pm seven days a week.
Days of the week alone can be used. This team prefers to play on Monday.
Days of the week and time can be combined. This team has a preference to play on Wednesdays from 9:00pm - 11:00pm with a ranking of 7.
Specific days of the year can be used. This team cannot play games on January 2, 2006.
Specific days of the year and time can be combined. This team cannot play games on June 22, 2006 between 5:00pm- -7:30pm.
This example was entered at the Program level (software area). You can also add constraints at the division level or team level. All constraints are additive in that constraints for a team at the specific team level, division level and program level are all used together.
During officials scheduling, you can also place constraints on the times, days and dates that officials can officiate.
A new feature is the ability to print the constraints you have input into the software. The printing parameters to the right of the Preferences chart, allow you to print constraints from the team, division or program level (or any combination), and group the resulting constraints by team, division or program.
To add a new constraint, click the "Click Here to Add New Constraint" row in the grid. The row will then open up for editing as shown below. You can also click the 'New' button on the toolbar and a blank Constraint can be edited.
You must select whether the constraint is a Preference or a Blackout. If the constraint is a preference, then the ranking fields will be visible and can be used. There are checkboxes beside the day of the week, the date and times. If you wish to add the Day of the Week as a constraint, you need to check the checkbox, then select the day. If you select a specific date, then the day of the week checkbox will become unchecked as you cannot add a day of the week and specific date constraint at the same time. With either the day of the week or the specific date, you can add a time constraint along with it or add a time constraint on its own. When you have entered your data, click save and the entry will then be saved and appear in the grid. To add another, you can click 'New' again and start over, or just change some of the data and then click 'SaveNew' to add a new constraint.
To edit a constraint in the grid, click on the entry in the grid and the data will then appear in the highlighted blue edit box. You can change data then save and the entry will be updated. You can also click the delete button and the constraint will be deleted. Clicking Cancel will close the blue box and discard any changes.
You can use a combination of preferences and blackouts to enter scheduling constraints. There is a precedence which is adhered to for constraints at the team, division and program levels. Preference constraints are done first. All team, division and program preferences are used to determine what dates and time a team would prefer to play. Then blackouts are used to restrict the dates and times a team can play. Depending on your constraints, it may be easier to assume all dates and time are available or blacked out. If a team can only play on a Wednesday, if all dates are assumed available, you would have to add a preference constraint for Wednesday, then 6 blackout constraints for the other days of the week...that is a lot of work. So, there is a feature on the parameters tab of the Game Scheduling screen to blackout or exclude all dates and times or leave all dates and times available. When that checkbox is used to blackout all dates and times, the only dates and times a team can play are those which have a preference constraint added.
Between Program, Division and Team level constraints, if the software finds a Blackout record at any level for a particular game time, the team can not play at that game time. That is straightforward. With Preferences, you may have a preference for a particular time set at the Division level and a second preference for the same time at the Team level. Since the two records may have different preference ranking, the Team level constraint is used if there is one, then the Division level constraint and finally the Program level constraint. So be careful, if you add a preference constraint at the team level for a team to play on Tuesday with a Ranking of 10, then later decide to add a preference constraint at the division level to set Tuesday to only a preference ranking of 1, that one team in the division will still use its team level ranking of 10.
So for a particular game time being considered for a team, these are the two scenarios.
1. If the Game Scheduling checkbox is used to assume all dates and times are blacked out: The software looked to see is a preference constraint is available for the game time being evaluated. If none are found, the team cannot play on that game time. If one is found, then the team can possibly play on that game time. Next, blackout constraints are read and if one exists, the team cannot play at the game time, otherwise if one is not found and a preference constraint was found, the team can play at the game time.
2. If the Game Scheduling checkbox is NOT used to assume all dates and times are blacked out: The software looks to see is a preference constraint is available for the game time being evaluated. Regardless if one is found, the team can play at that game time (but if one is found the ranking will give it a higher priority over others) Then blackout constraints are read and if one exists, the team cannot play at the game time.
Like other team rankings in the software, for each game there is a pair of rankings, one from each team to consider. There is no difference with preference constraints. One team may prefer to play Tuesday and another Thursday...when do they play? In some cases if one team can only play on one day and another team can only play on another, then the game will not be scheduled and will be left unassigned. More likely the teams will be flexible to play each other, but which day does the software select. For each game date and time, the software will rank the two teams preference and will select overall preferences that give all teams the highest preference score. So for example, if two teams are play on Tuesday and Thursdays and Team 1 has a preference ranking of 2 on Tuesday and 6 on Thursday (more preference to play Thursday) and Team 2 has a preference of 8 on Tuesday and 4 on Thursday, then the following will occur. When Team 1 is considered the home team (even if you do not have any home preferences) then the Tuesday Game Time would be ranked an 6 (2 + 8/2) and the Thursday Game would be ranked a 8 (6 + 4/2). Therefore Thursday would be the preferred date for a game against these two team with Team 1 as home. When Team 2 is a home, then the Tuesday Game time would be ranked a 9 (2/2 + 8) and a 7 (6/2 + 4) on Thursday giving a higher preference to Thursday games. The rank of the visiting team is halved so that in a balanced schedule with each team being designated a home team once, they would each get their playing preference during their home game. The schedule looks at all game pairing for the entire schedule and select games matchups that maximize the score by all teams on all dates.