The Scheduler has many constraints that can be configured for scheduling your classes. Most constraints are optional, though some are required for the Scheduler to be able to schedule your classes. Those that are required are indicated below with an asterisk (*). Constraints can be set at the global level and reused across Scenarios and Results or set for specific classes, students, teachers, rooms, or courses.
Global constraints are constraints which are not tied to a specific Scenario. Instead, they apply to every Result that is run, regardless of which Scenario and Result is in. Global constraints are managed from the Settings page on the top right of the scheduler page unless otherwise noted.
Maximum Number of Classes Taught per Day
The “Maximum Number of Classes per Teacher per Day” constraint allows you to set a default for the maximum number of classes a teacher can teach in one day. Another way to think of this constraint is the maximum number of blocks in which a teacher should have classes scheduled on any given day. By default, this constraint is left at zero and the Scheduler will schedule the teacher in as many blocks per day as necessary to ensure they teach all the classes assigned to them. The Maximum Number of Classes Taught per Day constraint can be set or overwritten on a per teacher basis if needed as well (see Teacher Constraints below). This constraint works best for schools who have a consistent number of blocks meeting each day of their rotation.
Approved Course Requests
The “Approved Course Requests” constraint allows you to choose whether or not the Scheduler should only satisfy student course requests that have been marked “Approved.” Any requests not marked “Approved” would be ignored. By default, the Scheduler uses all course requests to build student schedules, regardless of approval status.
The “Grading Periods” constraint is also a global constraint that is used by all scenarios, but is managed on the individual Class page. This configuration can also be set in Axiom from the Scheduler Grading Periods tab found on the Class record. The Grading Periods constraint tells the Scheduler which grading period(s) each class must be scheduled in, and therefore how long each class is. The Scheduler pre-sets this configuration for you based on prior year schedules. If this is your first year using Veracross or the first year your schedule data was stored in Veracross, this will need to be set by hand. This constraint must be set on each class or it will not be scheduled. See how to set this constraint in the Class Constraints section below.
Class constraints are set for each individual class and are managed on the Class page. Click on the “Classes” tab to view the list of all available classes that may be scheduled.
Each class has a “Max Students” constraint to limit how many students can be enrolled in that particular class or section. This helps the Scheduler to not over-enroll a class, even if more students are eligible to enroll in it. If the Max Students constraint is set on each class, the Scheduler will also intentionally not schedule classes in rooms whose capacity cannot hold the class’ maximum number of students. This will help avoid the problem of classes being scheduled in rooms that are too small (see Room Constraints below).
If the Max Students constraint on the class is blank or zero, the Scheduler will assume the class has no enrollment limit, and will allow students to be enrolled up to the limit set by the room’s capacity. If no limit is set on either the class’ Max Students or room’s Capacity, the Scheduler will enroll as many students in the class as needed in order to satisfy as many student course requests as possible.
Important Note: Though this constraint is configured on each individual class, it is in fact a global setting (it applies to all Scenarios).
As mentioned in the Global Constraints section above, the Grading Periods constraint tells the Scheduler which grading period(s) this class must be scheduled in. The Scheduler will schedule the class for all of the grading periods that are checked off in this constraint. If a partial-year class can meet in any grading period, you will need to manually choose a grading period for the class to meet during and check off the grading periods accordingly.
By default, the Scheduler will pre-set this constraint for you based on your school’s schedule from prior years. However, you will need to manually set the Grading Periods constraint for any brand new sections or classes. If this is your first year using Veracross, or the first year your school’s schedule data was stored in Veracross, you will need to set this constraint by hand for all of your classes. This constraint must be set on each class or the Scheduler will not schedule the class.
Important Note: Though this constraint is configured on each individual class, it is in fact a global setting (it applies to all Scenarios).
In a sense, one could argue that the above two settings are simply “configuration”, because for instance they can be set in Axiom, and any setting made to these two configuration options will simply apply to the class in the scheduler, regardless of the scenario. What follow are scenario-specific class constraints.
The “Linked Classes” constraint is an optional constraint that can be used to make sure two or more separate classes are scheduled with exactly the same teacher, room, and schedule. These classes can be in different Courses. For example, if a teacher teaches two separate classes that need to meet together in the same lecture (e.g. 3D Art and Graphic Design), the Linked Classes constraint will allow those two classes to be scheduled in the same classroom at the same time.
The Linked Classes constraint only needs to be set on one of the classes. Using the text box, search for the name of the other class(es) that must share the schedule of the “parent” class whose page you are on. Any class shown here will be given the same schedule as the parent class. This constraint only needs to be set on the parent class; it does not also need to be set on the pages of the other linked classes.
If the linked classes do not meet for all the same grading periods, only the schedule for the applicable grading periods will be copied from the parent class to the other linked classes. This means that the parent class should be the class which meets for the widest range of grading periods. For example, if one of the linked classes meets all year long, and the other meets only for one grading period, the Linked Classes constraint should be set on the class that meets all year long so this class becomes the parent.
The following things should be kept in mind when configuring linked classes:
- does not work if there is a different teacher or different room
- does not work if a school has a series of classes that they want to have happen together (such as four electives with the same schedule/roster, but meet during seperate quarters)
- does not work to schedule the first and second semesters of the same course
- does not work to tie a class to the back of another class (such as a science course followed by a lab period)
Room constraints are set for each individual room. Most room constraints are set on the Room’s constraint page, accessible from the Configuration tab > Rooms, unless otherwise noted.
Each room can be configured to belong to a Default Subject. This allows any course in the subject that was chosen to be scheduled in the room. If a default subject is set on the room, the subject will be checked off on the Subject/Rooms page so it is allowed to use this room (see Subject/Room Pairing below).
Each room has a “Capacity” constraint which sets a specific limit for how many students the room can hold. This constraint is used to determine which classes could fit in to which rooms and helps ensure that the Scheduler does not schedule classes in rooms whose capacity cannot hold the maximum number of students set on the class. If the Max Students limit of the class exceeds the Capacity limit of the room, the Scheduler will not schedule the class in that room. Setting the Capacity constraint on the Room and the Max Students constraint on the class will help avoid the problem of classes being scheduled in rooms that are too small (see Class Constraints above).
Setting the Capacity constraint will also prevent the Scheduler from enrolling any more students in to the class once the room’s maximum capacity is reached, even if the class might not be full. If the “Capacity” constraint on the room is left empty, the Scheduler will assume the room has no student limit and will allow students to be enrolled up to the class’ Max Students constraint. If no limit is set on either the room’s Capacity or the class’ Max Students, the Scheduler will enroll as many students in the class as needed in order to satisfy as many student course requests as possible.
The “Subject/Room Pairing” constraint is a way to tell the Scheduler in a broad way which subjects (and therefore the classes in those subjects) can use which rooms. This is the default configuration the Scheduler will use to determine in which rooms a teacher’s class(es) can be scheduled, though this can be specified in more detail if needed on an individual course (see Course Constraints below) and/or teacher (see Teacher Constraints below) basis if needed. The Subject/Room Pairing is set on the Subject Rooms page (Configuration tab > Subject Room). To set the Subject/Room Pairing, simply check off the checkbox for each subject in the row for the room(s) the subject is allowed to use.
The Default Subject constraint set on each room determines which subject header the room is listed under (see Default Subject constraint above). If any rooms were set with a “Default Subject”, they will appear sorted under the header of that subject, and the corresponding subject checkbox will already be checked off, giving the subject permission to use the room.
Course constraints are set for individual courses. Access the constraints for each course in the scheduler from the Configuration tab > Courses.
The Rooms constraint on each course is an optional constraint that can be used to override the default Subject/Room Pairing constraint mentioned in the Room Constraints above. By default, the Rooms constraint on the Course will inherit all the room permissions that were set on the Subject/Room page. If this course’s classes need to use a specific room or set of rooms, you can uncheck the “Inherit room settings from subject?” box and instead manually set the rooms where this course (and its classes) can meet. Doing this will override the Subject/Room Pairing constraint.
For example, if most fine art courses can be scheduled in any one of 10 classrooms (as set on the Subject/Rooms page), but the Pottery course needs to use one specific classroom, the Rooms constraint on the course page can be used to select the specific room in which the Pottery course must have its classes scheduled in.
If you manually override which rooms a Course can be scheduled in, the Scheduler will only schedule the sections of this course in the rooms that are checked off on the Course page; it will not reference the Subject/Room Pairing constraint when scheduling the sections of this course at all.
Each course has a Scheduling Method constraint that is used to tell the Scheduler which method to use when scheduling the sections of the course: either by block or by day.
Scheduling by Block
The “Schedule by Block” option tells the Scheduler that the sections of the course can meet during any of the blocks that are selected. This is the default setting and is how most schools schedule their classes. This option assumes that when scheduled, the class must meet on every day that the block it’s scheduled in meets. For example, if a class is scheduled in D block, and D block meets M/W/F, the class will be scheduled to meet on each of those days.
The Scheduler assumes the course can meet in any block, so all blocks are checked off for the course by default. If the course must be scheduled in certain blocks, be sure to only check off those block(s) on the Course page.
Scheduling by Day
The “Schedule by Day” option tells the Scheduler that the sections of the course must meet on certain rotation days, not necessarily during a specific block. By default, a class will be scheduled in a block on every day that block meets. The “Schedule by Day” option allows you to instead schedule a class for only a subset of a block’s rotation days. This option does not allow the class meet in different blocks, on different days; rather, it allows the class to meet in one block during only some of the block’s normal rotation days.
For example, if all your blocks currently meet every day of the week, you can choose the “Schedule by Day” method on any course and tell the Scheduler to instead schedule the course’s sections on only M/W/F.
You cannot create a new rotation day schedule for a block with this option, but can only modify the existing block rotation day schedules. For example, if your blocks only meet on M/W/F or T/R, you cannot use the “Schedule by Day” option to create a new block rotation day schedule that meets on M/T/W. However, you could do this if some of your blocks already meet M-F.
Configuring the Schedule by Day Method
When using the “Schedule by Day” option, the Scheduler has no default setting, and the information about which days a course should be scheduled must all be set manually. To create a modified rotation day schedule for a course and its classes, begin by typing in the days that the course must be scheduled on in the “Meet on each of these days…” field. As you add in rotation days, the “…in one of these blocks” field will automatically filter the blocks list to show only the blocks that already meet on the combination of rotation days you selected. If you have an invalid block rotation day combination (i.e. no blocks currently meet on all the selected rotation days), no blocks will be available to choose in the blocks field. Courses which have an invalid block rotation day schedule will not have their classes scheduled.
After specifying which rotation days the course must meet on, you can optionally pick a specific block or group of blocks for the classes to be scheduled in. This allows you to limit which blocks the classes will be scheduled in if some blocks should be excluded. If no blocks are selected in the “…in one of these blocks” field, the Scheduler will schedule the classes in any of the blocks shown in the drop down for that field. After setting the day(s) and block(s) during which the course and its classes can meet, click “Save Changes” to add the rotation day variation.
If a course can meet on a number of modified block rotation day schedules (e.g. M/W or T/R), you can add more than one modified rotation day schedule option. To do this, click the “Add New Schedule Variation” button in the “Schedule by Day” section. Following the steps above to add another modified rotation day schedule. When the classes for this course are scheduled, the Scheduler will use one modified schedule from this list; the Scheduler will not schedule the classes for all of these schedule variations.
If there is only one block available after the rotation days are set, and there are not multiple rotation schedule options to choose from, we recommend manually scheduling this course and its classes rather than using the “Schedule by Day” option as this scheduling method tends to slow the Scheduler down
Teacher constraints are set up for individual teachers and are managed from the Teacher’s page in the Scheduler. From the Teacher tab in the scheduler click on the teacher’s name you would like to set the constraint for.
The “Excluded Blocks” constraint allows schools to restrict individual teachers from teaching during specific blocks. If no blocks are checked for a teacher, the Scheduler assumes the teacher can teach during any block. If a teacher is not available to teach during a certain block(s), check off the block(s) in the Excluded Blocks constraint and this will prevent the Scheduler from scheduling the teacher’s classes in any of the selected blocks.
The “Rooms” constraint allows each teacher to only meet in a specific room, or set of rooms. By default, the teacher can be scheduled in any of the rooms their classes are allowed to meet in (set via the Subject/Rooms page under the Room Constraints, or optionally on the Course page as a Course Constraint). However, room constraints can be overwritten on a per teacher basis if some teachers should be restricted to teach in only a few rooms (e.g. a computer teacher should only use the computer lab classrooms). If a teacher does not have a Room constraint set, the Scheduler will first check for an override set on the Course page of the teacher’s classes before referencing the more general Subject/Room pairing to determine where the teacher’s classes can be scheduled.
By default, this constraint does not restrict other faculty from also using this room. It simply tells the Scheduler that this particular teacher is only allowed to teach in one of the rooms listed here; other teachers can still be scheduled in these rooms. However, it is possible to have a teacher “own” a classroom so that only one specific teacher is allowed to use the room (e.g. the band teacher should be the only teacher using the band room).
To have a teacher “own” a room, first configure the Room pairing for the teacher. When the room (or list of rooms) is set for the teacher, use the Subjects/Rooms page to make sure no subjects are checked off in the row for this room(s). Then, open the room page for the room(s) the teacher should own and make sure no subjects, courses or additional teachers are listed in the “Allowed Usage” section of the page. Only the teacher who owns the room should appear in the Teacher column of the Allowed Usage section. If more than one teacher appears in the Teachers column, you will have two teachers who share the room. If only the teacher appears in the Allowed Usage section, it indicates that the teacher alone “owns” the room.
Maximum Classes per Day
In addition to setting a global default for how many classes a teacher is allowed to teach in a day, each teacher has their own “Maximum Classes per Day” constraint which overrides the global setting. If a teacher should have a maximum number of classes that differs from the global default shown in the constraint, you can enter the number of classes this teacher should teach per day to override the default. If the Maximum Classes per Day constraint is left at zero, the teacher will be subject to the global default instead.
Student constraints are student specific and are set on each Student’s page. From the Students tab in the scheduler click on the students name that you would like to set the constraint for.
The “Teacher Avoids” constraint allows schools to set up specific student/teacher pairings that must never be scheduled. Each student can have multiple teachers designated as teachers to avoid and the student will not be scheduled in any of their classes. This is a hard constraint, meaning the student will not be scheduled in the avoided teacher(s)’s classes, even if they are the only options left. However, students can still be manually enrolled in a teacher’s class if a schedule user decides to place the student in the teacher’s class despite the Student/Teacher Avoid constraint setting.