Scheduling Rules descriptions and examples

Tool Search: Course Rules

The following information lists the Scheduling Rule names, a description of each rule with examples, the rule's logic details, and how the rule applies when building the schedule or when loading the courses. 

Ensure the rules are necessary before assigning them to courses. Too many rules assigned to a course limit the course's placement and the assignment of students to it. 

Some rules become irrelevant when using a semester term setup. For example, the Precedes/Follows and Before/After rules do not work when the calendar has only two terms. However, when the calendar was built with four terms (quarter schedule), these rules would become very useful.

Scheduling Rules - Things to know

Build and Load logic

When the Scheduling Board builds and loads courses, it attempts to place courses and students multiple times based on these rules.

Depending on the complexity of the period schedule, the number of rules associated with courses, the restrictions placed on staff and students, the course may not be placed in the desired manner. 

For courses with more restrictive needs (many rules, staff restrictions, etc.), consider manually placing these courses first and locking them. Then use the Build and Load functionality on the Scheduling Board to build and load the remaining courses. 

50% request requirement

Build only considers rules when:

  • One paired course has been built where the number of sections must exactly equal the number of sections to build.
  • There are requests for at least 50% of the possible seats for both paired courses. 

Scheduling Rules descriptions

Before and After

The Before and After rules limit the terms and periods during which a student can be scheduled into a course. These rules state the following: 

  • The student must take Course 1 in a term or period BEFORE taking Course 2. 
  • The student must take Course 2 in a term or period AFTER taking Course 1. 

Before (by Term)

Students take Course 1 before Course 2. 

Example: Math 100 is before Math 101. 

When Math 101 is placed in Term 3, students in Math 100 can only be scheduled in Term 1 or Term 2.

Build Load Potential Issues
When the build considers this rule, the paired 'Before' course must be in an earlier term (by term sequence) than the paired 'After' course. 

When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it doesn't make any changes and continues on to the next request.


There would be an issue when the course spans multiple terms when the number of terms required to build both sections exceeds the total number of terms in the calendar. 


For example, when both Math 100 and Math 101 need to be scheduled for three terms each, but there are only four terms in the calendar, the Build would be unable to accommodate any such requests.

After (by Term) 

Students take Course 2 after Course 1.

Example: Math 101 is after Math 100.

When Math 100 is placed in Term 1, students in Math 101 can only be scheduled in Terms 2, 3, or 4.

Build Load Potential issues

When Build considers this rule, the paired 'After' course must be in a later term (by term sequence) than the paired 'Before' course. 


When Build encounters this rule and the corresponding section does not already exist, it creates a new section.

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 


There would be an issue when the course has multiple terms when the number of terms required to build both sections exceeds the total number of terms in the calendar. 


For example, when both Math 100 and Math 101 need to be scheduled for three terms each, but there are only four terms in the calendar, the Build would be unable to accommodate any such requests.

Before (by Period)

Students take Course 1 before Course 2. 

Example: Biology Lecture needs to be scheduled BEFORE Biology Lab. 

In a six-period day, when Biology Lecture is scheduled in Period 3, Biology Lab can be scheduled in any period after Period 3. 

Build Load Potential issues
When the build considers this rule, the paired 'Before' course must be in an earlier period (by period sequence) than the paired 'After' course. 

When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 


There would be an issue when the course has multiple periods when the number of periods required to build both sections exceeds the total number of periods in the term.  


For example, when both Biology Lecture and Biology Lab need to be scheduled for three periods each, but there are only four periods in the day, the Build would be unable to accommodate any such requests.

After (by Period) 

Students take Course 2 after Course 1. 

Example: Biology Lab must be scheduled AFTER the Biology Lecture. 

In a six-period day, when Biology Lecture is scheduled in Period 3, Biology Lab can be scheduled in any period after Period 3. 

Build Load Potential issues

When Build considers this rule, the paired 'After' course must be in a later period (by period sequence) than the paired 'Before' course. 


When Build encounters this rule and the corresponding section does not already exist, it creates a new section.

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 


There would be an issue when the course has multiple periods when the number of periods required to build both sections exceeds the total number of periods in the term. 


For example, when both Math 100 and Math 101 need to be scheduled for three periods each, but there are only four periods in the calendar, the Build would be unable to accommodate any such requests.

Precedes and Follows

Precedes and Follows rules are stricter versions of the Before and After rules, with the addition that the courses must be in consecutive terms or periods. These rules state the following: 

  • The student must take Course 1 in a term or period IMMEDIATELY BEFORE Course 2. 
  • The student must take Course 2 in a term or period IMMEDIATELY AFTER Course 1. 

When multiple period schedules exist for a calendar, logic attempts to schedule the courses into the first period schedule. HOWEVER, if the courses cannot fit into the other period schedules, the courses are not placed at all. 

For example, a calendar uses the following Period Schedules:

  • Day A - Periods 1, 2, 3, 4, 5, 6
  • Day B - Periods 1, 3, 5
  • Day C - Periods 2, 4, 6

No course sections would be built with Precedes/Follows rules assigned because they couldn't be placed into Periods 1, 2 or Periods 3, 4 in any other day rotation. 

Immediately Precedes (by Term)

Students take Course 1 before Course 2 in consecutive terms

  • Course 1 happens in Term 1
  • Course 2 happens in Term 2

Example: Math 10A precedes Math 10B in consecutive terms. 

When Math 10B is scheduled in Term 4, Math 10A can only be scheduled in Term 3.

Build Load Possible issues

When the build considers this rule, the paired 'Precedes' course must be placed in the term (by term sequence) prior to the paired 'Follows' course. 


When Build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
There would be an issue if the number of terms required to build both sections exceeded the total number of terms in the calendar.

For example, when both Calculus I and Calculus II need to be scheduled for three terms each, but there are only four terms in the calendar, Build would be unable to accommodate any such requests.

Immediately Follows (by Term)

Students take Course 2 following Course 1 in consecutive terms.

  • Course 1 happens in Term 1
  • Course 2 happens in Term 2

Example: Math 10B follows Math 10A. 

When Math 10A is scheduled in Term 1, Math 10B can only be scheduled in Term 2.

Build Load Possible issues

When the build considers this rule, the paired 'Follows' course must be placed in the term (by term sequence) after the paired 'Precedes' course. 


When Build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
There would be an issue if the number of terms required to build both sections exceeded the total number of terms in the calendar.

For example, when both Calculus I and Calculus II need to be scheduled for three terms each, but there are only four terms in the calendar, Build would be unable to accommodate any such requests.

Immediately Precedes (by Period)

Students take Course 1 before Course 2 in consecutive periods

  • Course 1 happens in Period 1
  • Course 2 happens in Period 2

Example: Math 10A precedes Math 10B. 

When Math 10B is scheduled in Period 4, Math 10A can only be scheduled in Period 3.

Build Load Possible issues

When the build considers this rule, the paired 'Precedes' course must be placed in the term (by period sequence) prior to the paired 'Follows' course. 


When Build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
There would be an issue if the number of periods required to build both sections exceeded the total number of periods in the school day.

For example, when both Calculus I and Calculus II need to be scheduled for three periods each, but there are only four periods in the calendar, Build would be unable to accommodate any such requests.

Immediately Follows (by Period) 

Students take Course 2 following Course 1 in consecutive periods.

  • Course 1 happens in Period 1
  • Course 2 happens in Period 2

Example: Math 10B follows Math 10A. 

When Math 10A is scheduled in Period 1, Math 10B can only be scheduled in Period 2.

Build Load Possible issues

When the build considers this rule, the paired 'Follows' course must be placed in the period (by period sequence) after the paired 'Precedes' course. 


When Build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
There would be an issue if the number of periods required to build both sections exceeded the total number of periods in the day.

For example, when both Calculus I and Calculus II need to be scheduled for three periods each, but there are only four periods in the day, Build would be unable to accommodate any such requests.

Consecutive

Students take Course 1 and Course 2 in consecutive terms, but not in any order.

  • Math A is scheduled in Term 1 and Math B is scheduled in Term 2; OR 
  • Math B is scheduled in Term 1 and Math A is scheduled in Term 2.

Do not use this rule with Before/After and Precedes/Follows. 

Build Load Possible issues

When the build considers this rule, this one paired course must precede or follow the other paired course in the next sequential term (by term sequence). 


When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
N/A

Same Teacher

Students take Course 1 and Course 2 from the same teacher.

Example: Spanish A has the same teacher as Spanish B. When Spanish A is taught by Ms. H, then Spanish B can only be taught in a section by Ms. H.

When used with the Same Period rule, students taking Course 1 from Teacher A in Period 1 in Term 1 are scheduled into Course 2 with Teacher A in Period 1 in Term 2.

Build Load Possible issues

When the build considers this rule, this one paired course must precede or follow the other paired course in the next sequential term (by term sequence). 


When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
N/A

Same Section Number

Students take the same section number for Course 1 and Course 2.

Example: Math 10A is the same section as Math 10B. When a student is scheduled into Math 10A Section 1, the student can only be scheduled into Math 10B Section 1.

This rule states that the student must be scheduled into the section number of both courses. This allows the same roster of students to move from Course 1 to Course 2. 

Build Load Possible issues
N/A When Load encounters this rule, it applies the rule to maintain required sequencing, instructor consistency, and section relationships across scheduled items. 
Using this rule in conjunction with other rules often results in load failures on the Scheduling Board due to logic conflicts.

Same Period

Students must take Course 1 and Course 2 during the same period but in different terms.

Example: English 10A is the same period as English 10B. When a student is scheduled into a section of 10A that meets term 1 period 2, English 10B must be scheduled into term 2, 3, or 4 during period 2.

Both courses must be scheduled into sections that meet during the same period number in different terms. It only looks at the period. 

When used with the Same Teacher rule, students taking Course 1 from Teacher A in Period 1 in Term 1 are scheduled into Course 2 with Teacher A in Period 1 in Term 2.

Build Load Possible issues
When the build considers this rule, it tries to ensure the courses end up with sections in the same period. After placing a section for Course 1 in Period 3, for example, it checks whether Course 2 also has a section in Period 3. If not, it attempts to build one there.
           
When it cannot place the course in the same period (teacher unavailable, room conflict, etc.), it rolls back and tries a different period for Course 1.  


When combined with a Same Teacher rule between the same two courses, the wizard treats them as a combined "Same Teacher + Period" constraint and tries to satisfy both simultaneously.


When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When loading a student who already has Course 2 scheduled in Period 3, for example, it restricts Course 1 to sections that also start in Period 3.

            

When no section of Course 1 is scheduled in Period 3, the student has a scheduling conflict.

            

When the constraint cannot be satisfied directly, it attempts a "rule relax" where it temporarily removes the student from Course 2, tries to place both courses in a period that works, and re-loads them. If that also fails, the conflict stands.


When Course 2 only has sections in periods where Course 1 has no sections (or vice versa), the rule can never be satisfied.              

Teacher availability constraints prevent both courses from landing in the same period during build, resulting in an Autobuild Failure (shown as a red indicator on the course with a tooltip showing teacher or room conflicts).        

When combined with a Same Teacher rule between the same two courses, both constraints must be satisfied simultaneously, which further restricts placement options.

Same Term

Students take Course 1 and Course 2 at different times within the same term.

Example: English 100 is the same term as Literature 101. When a student is scheduled into a section of English 100 during term 1, he must be scheduled into a section of Literature 101 that meets during term 1, but not during the same period.

Both courses must be scheduled into different periods of the same term. It only looks at the term. 

Do not use this rule with the Different Term rule. 

Build Load Possible Issues

Partially enforced during Build.

            

During section building, a check is done to determine whether at least one section of the ruled child course starts in the same term as the section being placed. For example, if Course 1 is being placed in Quarter 2, the wizard verifies that Course 2 has (or can have) a section in Quarter 2 as well.

            

This only restricts the build when the second course is fully built, and more than half the students requesting Course 1 also request Course 2. If the overlap is small, the course builds freely and lets the load handle the placement on a per-student basis.


When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When loading a student who already has Course 2 in Quarter 1, for example, the wizard blocks all terms EXCEPT Quarter 1 for Course 1. The student can only be placed into a Course 1 section that meets in the same term as their Course 2 section, but it must be in a different period (otherwise it would be a time conflict).

            

When no Course 1 section exists in that term, the student gets a conflict. A rule relax is attempted (pulling the student out of Course 2 and trying to re-place both in a term that has sections for both courses).


Course 1 is a semester course in S1 only, but Course 2 is a semester course in S2 only. The rule can never be satisfied because they don't share a term.                

A full-year course paired with a quarter course works fine (the quarter course just needs to land somewhere within the full-year span).                

If Course 2 hasn't been loaded yet for a given student, the rule has no effect during that student's load pass. The constraint only applies when the second course is already placed.

Different Term

Students take Course 1 and Course 2 in different terms.

Example: Phy Ed 10 is in a different term than Fitness 11. When Phy Ed 10 is scheduled into a section that meets term 2, the student can only be scheduled into a section of Fitness 11 that meets terms 1, 3 or 4.

Both courses must be scheduled into different terms. This rule only looks at the term.

Do not use with the Same Term rule.

Build Load Potential Issues

Partially enforced during Build.

            

During section building, a check is made to verify that at least one section of the second course starts in a DIFFERENT term than the section being placed. When Course 1 is being placed in Quarter 1, the wizard verifies Course 2 has a section in Quarter 2, 3, or 4.

            

Like Same Term, this only restricts the build when student overlap is high enough to matter (child course fully built and more than 50% student overlap).



When the build encounters this rule and the corresponding section does not already exist, the new section is created. 

When loading a student who already has Course 2 in Quarter 1, Quarter 1 is blocked for Course 1. The student can only be placed into a Course 1 section that meets in a different term.

            

When Course 2 spans multiple terms, ALL of those terms are blocked for Course 1. The student must land in Q3 or Q4.

            

When no valid term exists, the student is pulled out of Course 2 and then replaced in both terms that satisfy the rule.


Full-year course trap: If Course 2 is a full-year course (spans all terms), the Different Term rule blocks EVERY term for Course 1. This makes it impossible to schedule any student into both courses. This is a configuration error.    

Course 1 only has sections in the same term as Course 2. No student can satisfy the rule.        

This rule is commonly used for sequenced semester courses (e.g., Reading 1 in S1, Reading 2 in S2) where there is a guarantee they don't overlap in the same term.

Skinny

Students take both Course 1 and Course 2 in the same period/same term without it causing a conflict.

Example: Careers is skinnied with Chorus during 3rd hour term 1. The student goes to Career half of the hour and Chorus the other half of the hour.

Both courses are scheduled for the same period and term. Courses could also be scheduled to meet every other day or every couple of weeks.

Sections are built for each skinnied course independently, meaning skiny courses are not automatically placed in the same period/term. Use placement constraints or manually drag sections to the same slot on the Schedule Board before loading the courses. 

This rule takes precedence over many of the other rules.

Build Load Potential Issues
N/A 


Skinny fundamentally changes how the loader treats time conflicts.

Bypasses the "full schedule" gate: Normally, a student with no open periods cannot be loaded into anything. Skinny courses bypass this check because they are designed to share a slot.

Overlap requirement: When loading a student who already has Course 2 in Period 3/Term 1, it ONLY places Course 1 into a section that also meets in Period 3/Term 1. The sections must share at least one time slot.

Partial overlap handling: If Course 1's section meets in P3/T1 AND P4/T1, but Course 2 only meets in P3/T1, a check is done to verify that P4/T1 is open in the student's schedule. The overlapping slot is allowed, but any non-overlapping slots must still be free.

No conflict counted: Students in skinny courses together don't count as having a scheduling conflict, and skinny courses are excluded from the conflict tallies shown on the Schedule Board.

Half scheduling units: Skinny courses count as half their normal scheduling units in the Walk-in Scheduler's schedule fullness calculation.
Sections not in the same period/term (most common): Since build doesn't enforce skinny placement, sections often end up in different slots. Every student then gets a conflict during load.
Fix: Use Placement Constraints to lock both courses to the same period, or manually drag sections to the same slot on the Schedule Board before running Load.

One course has more sections than the other: If Course 1 has 3 sections (P1, P2, P3) but Course 2 only has sections in P1 and P2, students placed in Course 1 Section 3 (P3) will conflict because Course 2 has nothing in P3.  

Skinny with different term lengths: If Course 1 is full-year and Course 2 is semester, the overlap only exists for the semester portion. The non-overlapping terms of Course 1 must have open slots in the student's schedule.              

Walk-in Scheduler behavior: The Walk-in Scheduler has a specific guard that prevents it from accidentally "skinnying" courses that don't have a skinny rule. If a user tries to manually schedule a student into a conflicting slot via Walk-in Scheduler, it won't allow it unless the skinny rule actually exists between those courses.

Combined

A course is taught in the same period with the same staff or in the same room. 

The Combined rule allows more than one course to be taught in the same period with the same staff or room, depending on the scenario in which this rule is used. Students are placed according to the Scheduling Board's logic. This information also displays in the Walk-In Scheduler when assigning courses to students.

While similar in nature, the Combined rule is NOT the same as the Skinny rule. This rule behaves differently from the Skinny rule: 

The Skinny rule is primarily used to load students into multiple courses at once, while the Combined rule is used to build courses in the same period, in the same room, or with the same teacher. 

Staff logic

Two courses can be taught in the same classroom by the same teacher. When this rule is assigned, the Scheduling Board ignores the teacher conflicts on the course.

Example: Spanish III and Spanish IV courses have low enrollment and are combined into the same period with the same staff.

Room logic

When two or more courses are joined by the combined rule and placed in the same classroom and period, the combined rule allows the Scheduling Board to view and limit the combined total available seats. The total available seats are determined by the largest Max Seat count across all combined courses taught in that period/room. 

As students are loaded into any individual combined section, the maximum available seat count of the remaining sections is automatically reduced.

When using the combined rule in this fashion, the logic considers the period and the room, whether a single staff member teaches all the combined courses or multiple staff members teach them. 

Example: Freshman English has a maximum seat count of 20 students. It is combined with a Special Education section of Freshman English with a maximum seat count of 5 students and a Freshman English section of ESL with a maximum seat count of 5 students. When three students are scheduled into the Special Education section of Freshman English, the maximum seat count of the regular Freshman English course is automatically reduced to 17 students.

The total combined maximum seat count cannot exceed the maximum seat count of the largest combined section.

Build Load Possible issues
When the build encounters this rule, it creates the course with the same teacher or same room and places it in the same period as its paired course.  When loading courses, the load checks for student-to-student conflicts or for seat count; otherwise, it is ignored.  An auto-build failure may occur if the build cannot place the course in the same room or period with the same teacher. 

Bind

Students take both Course 1 and Course 2, or neither course can be scheduled.

Example: English 10A binds to English 10B. When the load finishes and the student is only scheduled in 10A, not 10B, the loader unloads 10A.

The student must be scheduled into sections of both courses or neither course.

Using bind can result in increased conflicts.

Some users prefer to have every section of a course sequence scheduled or none at all. In this situation, bind frees up seats for guidance counselors to start hand-scheduling the remaining conflicts.

Build Load issues
N/A

Load does not override a locked roster to enforce the rule.


After loading, check whether the student is placed in both courses; if not, the student is removed from all sections of both courses.