Submit a Ticket My Tickets
Login  Sign up

OPTIMIZER: Using the Section Optimizer for Rooms

Table of Contents

Review & Adjust Configurations
Creating an Optimizer Run
Optimizer Settings
Section Conflicts
Running the Optimizer
Optimizer Results Dashboard
Merging Results

Additional Note
Related Links


  • The Section Optimizer can be used to automatically make the best room assignments for an academic schedule. 

  • Reach out to your Coursedog Customer Success representative before running the Optimizer for the first time; they will test the Optimizer with various configurations in order to determine which settings produce the best results for your institution.

  • Run the Optimizer 3+ weeks before your schedule must be finalized to make any necessary adjustments.

  • Once the Optimizer is run, custom Optimizer reports appear in the dashboard to examine results.

  • All Optimizer assignments will be stored as a separate schedule, which can ultimately be merged into the existing class schedule.

  • The Optimizer only loads in data from a single term and cannot check for conflicts over multiple terms. If you have overlapping terms, make sure to create “Parts of Term” within a single term to store all these sections. Learn how here.

  • The Optimizer is currently unable to support the scheduling of classes that require an “Online” room.


Review & Adjust Configurations

Overview | Current Academic Schedule (Sections) | Rooms & Buildings
Instructors | Standard Meeting Patterns
 | Section Relationships (Linked Sections)


  • The Optimizer pulls information from a variety of different sources to help determine the best room assignment.

  • It is important to review all this information before running the Optimizer, to ensure that you are providing the Optimizer with a clean set of data.

  • The Optimizer checks against the following information:

  1. Current Academic Schedule (Sections)

  2. Rooms & Buildings

  3. Instructors

  4. Meeting Patterns

  5. Section Relationships

Current Academic Schedule (Sections)

An academic section is the base unit of data that is used within the Optimizer. For every section brought into the Optimizer, it will examine the section’s place in the schedule, along with any preferences or constraints attached to the section, and determine the best room to assign that particular section (without creating any conflicts or violating any predefined rules).


Meeting Patterns & Rooms Data

Preset States | Enrollment Capacity | Room Preferences
Sections That Shouldn’t be Assigned Rooms

Each Section has a “Meeting Patterns & Rooms” data attribute. The information in this data attribute is what the Optimizer will attempt to assign.



Preset States

When a section enters the Optimizer it can be in one of four preset states in regards to its meeting & room information. The following lists those states and outlines how these states will impact the Optimizer when it runs on those sections. 


Preset State


No Meeting Times & No Rooms

No room will be assigned because a meeting time is required for the Room Optimizer.

One Meeting Time and No Room

  • A room will be assigned. 

  • If a section has multiple Meeting Patterns and some of those Meeting Patterns already have a time & room assigned, this will NOT prevent the Optimizer from assigning a room to the Meeting Patterns that have a time but no room assigned. In other words, the Room Optimizer assigns rooms on a meeting-by-meeting basis (but it's possible for not all meetings to be assigned rooms depending on other factors – see FAQs).

Multiple Meeting Times and No Rooms

A room will be assigned to each meeting time.

Meeting Times with Rooms

Given that both times and rooms are pre-assigned, the Optimizer will not assign rooms to this section. 


Enrollment Capacity

  • The Optimizer uses the enrollment capacity, or maximum enrollment, attribute to determine the minimum capacity of the room that can possibly be assigned to this section via the Optimizer.

  • If the section has an enrollment capacity of 15, then the Optimizer WILL be allowed to assign a room with a capacity of 15, but WILL NOT be allowed to assign a room with a capacity of less than 15. Please note, waitlist capacity does not impact Optimizer results. 

Room Preferences

  • Additionally, you can assign specific room preferences to each section within the Section Editor.

  • These preferences are used to determine the best-fit rooms for each section.

  • You can specify the importance of each of these preferences in the Optimizer Settings page.

  • These preferences are used to determine the best-fit rooms for each section. You can specify the importance of each of these preferences in the Optimizer Settings page.

Sections That Shouldn’t be Assigned Rooms

  • You may flag certain sections which should not be assigned a room by the Optimizer.

  • To do so, you need to add the pre-built “Do Room Scheduling” field in the Section Template (Academic Scheduling > Settings >  Templates > Section Template).

  • If this field is set to “No” for a given section, then the Optimizer will not assign a room to this section. If this isn’t set at all (i.e. Neither “Yes” nor “No” is selected), the default behavior is to treat that as “Yes” and for the Optimizer to assign rooms. 

  • Selecting “TBA” within a section's room select modal does count as a room assignment for the purposes of the section Optimizer: If a section has a room assignment of “TBA”, then the Optimizer will not assign this section a room.


Rooms & Buildings


All the rooms and buildings in Academic Scheduling are also by default brought into the Optimizer. For each room, the following attributes are used by the Optimizer.




Room Capacity

  • The room capacity must be greater than or equal to a section’s enrollment capacity for the Optimizer to assign the room to the section.

  • Additionally, if a section has a Preferred Room Capacity preference, a room will be considered a better fit by the Optimizer if the room capacity is close to the section’s preferred capacity.

Room Features

  • This attribute is only used if a section has its preferred room features attribute populated.

  • If for example, a section has Preferred Room Features set as “Microphone, Whiteboard", the Optimizer will consider a room a better fit if it contains either a microphone or whiteboard.

  • If it contains both a microphone and whiteboard, it will be considered an even better fit.

Room Type

  • This attribute is only used if a section has its preferred room type attribute populated. 

  • If so, the Optimizer will consider a room a better fit if the room’s type is equivalent to the section’s preferred room type.


  • This attribute is only used if a section has its preferred building attribute populated. 

  • If so, the Optimizer will consider a room a better fit if the room’s building is equivalent to the section’s preferred building.

Exclude from Optimizer

  • This attribute is used to exclude a room from the Optimizer. 

  • If set to true, a room will not be assigned to any section via the Optimizer.


  • This field is used to determine a room’s availability for scheduling.

  • It functions similarly to “Exclude From Optimizer”.

  • If the status is set to Inactive, the room will not be assigned to any sections via the Optimizer.

  • The room will not be assignable manually within the Section Editor either.

Effective Start & End Date

  • These fields are used to define a range of dates where a room is active. This may be used if rooms are only available for a specific part of term.

  • If a room has an effective start date of 1/20/2020 and an effective end date of 3/20/2020, and a section within the Optimizer is set to a part of term with dates 1/20/2020 - 3/20/2020, then this room will be allowed to be assigned to that section.

  • If the section has a part of term with dates 2/25/2020 - 4/18/2020, then that room will not be allowed to be assigned to that section.

Allowed Sections

  • If you have detailed filters under a Room's “Allowed Sections”, these restrictions will be respected by the Optimizer.

  • For example, if a room's “Allowed Sections” indicates that only sections with a certain campus code association may be scheduled to meet in this room, the Optimizer will only assign said room to Sections with the corresponding Campus association.


Modifying Room Settings

PATH: Academic Scheduling > Rooms > (Click on Room Name)


Below is a sample room settings page, where all the aforementioned attributes can be modified.



  • Instructor preferences factor into room assignments only if there are room preferences associated with that instructor.

  • Note that the Optimizer does not assign instructors; rather, when an instructor with preferences is assigned to a section that is being run through the Optimizer (for room assignment), those instructor preferences become a factor. 

  • Instructor preferences can be collected via Preference Forms, or by directly editing the Instructor’s preferences within the Section Editor  [Academic Scheduling > Instructors (Left-Hand Nav) > (click on Instructor name) > (Pencil Icon / “Edit Preferences”)].

  • The Optimizer does not favor or prioritize instructor preferences over section preferences or vice versa.

  • The Optimizer does not try to meet preferences one by one, it drives to satisfy them all at the same time.

  • If, ultimately, one preference is satisfied and the other is not, a preference violation will be flagged for admins to highlight what was not met. More detail on preference violations can be found below. 

Instructor Preference Options

The following instructor preferences are used by the room optimizer:

  • Preferred Rooms

  • Preferred Room Features

  • Preferred Room Type

  • Preferred Room Capacity



Here are two examples of how the Optimizer uses instructor preference information. Let’s say Instructor John Doe is assigned to Section A.


Example 1

Section A has a Preferred Room Type of “Seminar”, and Instructor John Doe has a Preferred Building of “Green Hall”, then the Optimizer will look for a “Seminar” room in “Green Hall”.


Example 2

Section A has a Preferred Room Type of “Seminar”, and Instructor John Doe has a Preferred Room Type of “Lecture”, then the Optimizer will look for a “Seminar” or “Lecture” room. 


Optimizer Priority

PATH: Academic Scheduling > Instructors > (Click on Instructor Name) > (Pencil Icon / “Edit Preferences”)


Each Instructor can also have an “Optimizer Priority”. This attribute determines how highly an Instructor’s preferences are weighted inside the Optimizer. You can set an instructor's “Optimizer Priority in the “Section Editor” at the above path (also shown below).

Standard Meeting Patterns


  • Standard Meeting Patterns are a set of pre-defined meeting patterns.

  • Standard meeting patterns can be found at Academic Scheduling > Settings > Standard Meeting Patterns.

  • You can learn more about setting up Standard Meeting Patterns here.


Meeting Pattern Groups


  • Each meeting pattern is associated with a meeting pattern group.

  • Groups are often divided along section types (i.e. a group for lab sections, a group for lecture sections), but this is not always the case. See example of a meeting pattern group below:

Editing Meeting Pattern Groups

PATH: Academic Scheduling > Settings > Meeting Patterns > Group Info (Pencil Icon) on the Relevant Group Card


  1. Within the editing modal, each group can be associated with a specific subset of sections using the “Allowed Sections” input. 

  2. The Allowed Sections input defines what sections are allowed to use meeting patterns contained within this meeting pattern group. 


Section Relationships (Linked Sections)


The Optimizer can take Section Relationships into account while making room assignments. These relationships are called “Linked Sections”. They can be set in two places: 

  1. Relationships Dashboard (learn more here).

  2. Section Editor (learn more here).


Impact on Optimizer

The following relationships have an impact on room assignments made by the Optimizer. 



Impact on the Optimizer

Same Room (shared space)

The Optimizer will try to assign sections with this relationship to be in the same room. The Optimizer will ignore any double-booked room conflicts if the sections happen to meet during overlapping times.

Same Time Same Day Same Room

If times have been pre-assigned, the Optimizer will try to assign the same room to all sections with this relationship if and only if the sections are already meeting at the same time and on the same days of the week. Sections with this relationship will also have their Double Booked Instructor conflicts ignored.


Creating an Optimizer Run

PATH: Academic Scheduling > Optimizer > Section Optimizer


Getting Started

  1. Make sure the correct scheduling term is selected.

  2. Click “+ Optimizer Run” to get started.


Page Overview

The top of the next page will contain a progress bar that will track your progress. It captures the following steps:  

  1. General Settings – Contains all Optimizer settings.

  2. Section Conflicts – Displays all section-level conflicts that might impact Optimizer performance.

  3. Room Bottlenecks – Displays all potential room bottlenecks that might impact Optimizer performance.

  4. Optimize – Contains the “Run Optimizer” button, which is intended to be clicked after all settings have been defined and conflicts/bottlenecks have been resolved.


Additionally, each page contains a “To Do” checklist, indicating what needs to be accomplished on each page before moving forward. 

Optimizer Settings

Overview | General Settings | Advanced Settings


The Optimizer has many settings that will define the behavior of the Optimizer. The settings are divided between General and Advanced. General settings are commonly adjusted settings, while advanced settings are less commonly adjusted and relate to more nuanced preferences and constraints. These settings are defined in the Optimizer settings page and outlined below.


General Settings

Setting Name


Optimizer Run Name

The name of the Optimizer. Make this as specific as possible, as you might want to run the Optimizer multiple times before you merge results.

Academic Departments

Which academic departments will be included in the Optimizer. Default is to “All Departments,” however, the Optimizer can be run for specific departments if needed.

Send Email Notifications

Select “YES” to receive an email 

once the Optimizer has finished running (it can take anywhere from a few minutes to several hours).

Assign Rooms

Select “YES” to have the Optimizer assign the best-fit room.

Minimum Seat Utilization

Dictates the largest room that could be assigned to a section. Minimum seat utilization is always considered a hard constraint. This is evaluated first over other inputs or criteria such as preferences (e.g. Preferred Room Capacity is a soft constraint that will be checked and evaluated if and only if minimum seat utilization is met).



At 50% – the default setting – a room with a capacity of 40 can be assigned to a section with an enrollment capacity of 20+.




The Optimizer has 3 rooms to select from, Room S 237, Room S 238, and Room S 313, with room capacities of 25, 42, and 12, respectively. 




  • The Optimizer will not assign Room S 313 as it cannot accommodate the maximum capacity for the course.

  • The Optimizer will not assign Room S 238 as seat utilization would be less than 50% (only 48% of the seats would be occupied by students in Course X).

  • The Optimizer will assign Room S 237 as it can accommodate the maximum capacity for the course and seat utilization would be greater than 50%.

Back To Back Duration

If two sections with the same instructor are intended to have back-to-back meeting patterns, what is the maximum length of time between two meeting patterns before they are not considered back to back?


Back to Back sections consider the same instructor and can also play into room optimization. For example: If you have set back to back duration = 10, same room = yes, and run the room Optimizer, the Optimizer will look at sections that have the same instructor and whose meeting patterns are 10 mins apart maximum, and will then try to assign those sections in the same room.

Enrollment Difference

The default setting is 100%, which means that a difference of max enrollment up to 100% can be allowed for back-to-back sections. This is the same as saying the difference in max enrollment is not a factor in considering back to back sections. If the enrollment difference is set to 50%, then a section with a max enrollment of 100 and a section of max enrollment 45 will not be considered back-to-back, as their difference in enrollment is greater than 50%.


Advanced Settings

These optional settings are used to define/modify additional constraints and weights for the Optimizer. 


Advanced Setting Name


Standard Meeting Pattern Preferences

  • Prioritize the room preferences of sections that use standard meeting patterns, as opposed to custom times. 

  • “Yes” means the Optimizer will prioritize sections that use standard meeting patterns.

  • “No” means the Optimizer will not prioritize sections that use standard meeting patterns.

Section Length Preference

Gives preference to sections that are the same 

duration (or longer) than the value entered here.

Section Meeting Day Preference

Gives preference to sections that meet the same number of days (or more) than the value entered here.

Enrollment Preference

Gives preference to sections that have a maximum enrollment that is equal to or greater than the value entered here.

Preferred Times Weight

Ignore; this only applies to time optimization, which isn’t relevant here. 

Preferred Meeting Length

The weight of satisfying any preferred meeting length preferences that have been provided by instructors.

Conflict Times Weight

The weight of satisfying any conflict time preferences that have been provided by instructors.

Back to Back Sections Weight

The weight of satisfying any Back-To-Back-Sections preference that has been provided by instructors.

Time Interval Between Sections Weight

The weight for satisfying any Time-Interval-Between-Sections preferences that have been provided by instructors.

Preferred Room Weight

The weight for satisfying any preferred room preferences provided by instructors or set on specific sections.

Preferred Room Type Weight

The weight for satisfying any preferred room type preferences provided by instructors or set on specific sections.

Preferred Room Features Weight

The weight for satisfying any preferred room features preferences provided by instructors or set on specific sections.

Preferred Room Capacity Weight

The weight for satisfying any preferred room capacity preferences provided by instructors or set on specific sections.

Preferred Building Weight

The weight for satisfying any preferred building preferences provided by instructors or set on specific sections.

Department Rooms Weight



The weight for prioritizing department-owned rooms when assigning rooms to sections. We match department-owned rooms to sections by looking at the departments field in the Room Template and the course.departments field from a section’s parent course.

Weight heavier if you have department-owned rooms.

Section Relationships Weight

The weight for abiding to any linked section relationships. Weight heavier if you have linked sections.


Determining Weights

  • All weights range from 0-10. 

  • A value of 0 indicates the preference should have no relevance on the output of the Optimizer, and resultantly can be ignored.

  • A value of 10 indicates a hard constraint, meaning that the Optimizer has to satisfy that preference otherwise no room assignments will be made. 

  • Avoid setting anything to 10, as this will likely cause the Optimizer to fail.

Section Conflicts


  • Once you have created an Optimizer run, and defined the Optimizer settings, you will be presented with two pages that are intended to help identify issues that might negatively impact Optimizer performance and results: Section Conflicts and Room Bottlenecks.

  • Section Conflicts lists all conflicts in the current academic schedule that relate to optimization.

  • The Optimizer can run with conflicts, but unresolved RED conflicts will result in a lack of assignment.


Conflict Types

Conflict Type


Section With No Max Enrollment Capacity

This conflict affects the Room Optimizer because the enrollment capacity is used to determine if a section/room assignment violates the minimum seat utilization setting. Sections with no enrollment capacity will not be assigned rooms.

Sections With Double Booked Rooms

The Optimizer treats double booking rooms as a hard constraint. In other words, it will never double book a room. As a result, if sections provided to the Optimizer have a pre-existing room double booking, the Optimizer will not be able to successfully make any room assignments, and will likely fail. To resolve this, please assign all sections with room double bookings a “Same Room” relationship, which informs the Optimizer that the double bookings are allowed and intended. 


For Events users: Please note that the Class Scheduling Optimizer does not recognize rooms booked for an Event (i.e. running the Optimizer in Scheduling may result in double booked room conflicts with Events). The reasoning for this is that typically institutions place priority for Section room assignments over Events room assignment (i.e. They would want to be able to schedule a section in a room that is a good fit regardless of there being an Event booked in that room).


Resolving Section Conflicts

  1. Click on the conflict to open the Section Editor.

  2. Adjust settings to resolve the conflict. Some suggestions:

    • No maximum enrollment capacity – Input a number.

    • Double-booked rooms – Change the room assignment or assign the “same room” relationship (if applicable).

  3. Save your changes.

  4. Refresh the page.

  5. Hit “Next”


The third Optimizer page lists all potential room bottlenecks that have been calculated in the current academic schedule. 


Types of Bottlenecks

There are two types of room bottlenecks that will be detected:


No Room with the Required Capacity

This is detected when a section has an enrollment capacity greater than the capacity of any room in the system.


Not Enough Rooms with the Required Capacity

This is detected when a section requires a room with a minimum capacity, but multiple other sections require that same room at the same time.


Resolving Bottlenecks

  1. Click on the bottleneck to review.

  2. Adjust settings as needed to resolve the bottleneck:

    • Confirm/correct Enrollment Capacity for impacted sections.

    • Confirm/correct Room Capacity for involved rooms.

    • Change Section Times to a less popular time.

  3. Save your changes.

  4. Refresh the page.

  5. Hit “Next” to proceed to the “Run Optimizer” page.


Running the Optimizer

Things to Keep in Mind

  • The Optimizer creates a copy of the section data that can be found in the Section Editor. As a result, running the Optimizer will not impact the existing schedule, and the Optimizer can be run multiple times until the desired result is reached. Once you have completed an Optimizer run with a satisfactory result, you can merge the results back into your existing schedule (see below for details on merging).

  • Once the run is completed, the progress bar will reach 100% and you will be redirected to the Optimizer Results dashboard.


How to Do It

  • Click the “Optimize!” button, and the Optimizer will start immediately.

  • You will be shown a progress bar to check in on the progress of the run.


Optimizer Results Dashboard

Overview | Finding the Dashboard | Dashboard Contents
Results Page | Conflicts Page
 | Exporting Results


  • The Optimizer Results Dashboard is used to view the result of Optimizer assignments, reports, and conflicts – and merge the results back into your current schedule. 

  • The dashboard is not specific to just Optimizer assignments, but all sections in the schedule.


Finding the Dashboard

  1. If You Received an Email – Click the link in your email.

  2. If You Stayed on the Page – Select “Click here to view the Optimizer results” and then click into the run.

  3. If You Left the Page – Log into Coursedog; visit the Section Optimizer; and click into the run.


Dashboard Contents

The dashboard consists of the following pages:



Results Page

The results tab lists all the sections contained in the Optimizer run in a view similar to the “Section Editor”. You can view the results by individual sections, or grouped together in courses. However, you cannot make changes from this screen (you will need to go to the Section Editor to do that). You can additionally filter between: 

  1. All sections scheduled successfully by the Optimizer.

  2. All sections not scheduled by the Optimizer.

  3. All sections scheduled but have preference conflicts.

  4. All sections excluded from the Optimizer.


Next to each section, there will be an icon indicating one of the following three statuses:


  • Checkbox – The Optimizer successfully made all room assignments (or this section was intended to be excluded from the Optimizer).

  • Warning – Optimizer made room assignments; however, those assignments violate some soft constraints due to preferences.

  • Not Scheduled – Optimizer was not able to assign rooms. The likely cause of this issue is if either 1) the input schedule contained a Double Booked Instructor or Double Booked Room Conflict, or 2) there was a room bottleneck issue that prevented the Optimizer from assigning all sections to a room that would not violate the minimum seat utilization.


Conflicts Page

  • The “Conflicts” tab provides an overview of all conflicts:

    • Conflicts that resulted from Optimizer assignments and

    • Conflicts for sections that were excluded from the Optimizer.


  • The bar at the top captures key data: 

    • Total conflicts & percent sections with conflicts.

    • Total preference conflicts & percent of preferences satisfied.


  • You can filter by conflict type via the dropdown.

  • Click into individual sections to learn more about the conflict.


Exporting Results

If you would like to export your results, there are three options.


Course Sections List Report

  • This report creates a CSV file that is a direct copy of the Course Sections List in the Reporting Dashboard; however, all the data is populated from the Optimizer.

  • This will include all Optimizer room assignments, but will also include many other section fields, and will include sections that the Optimizer was not able to make assignments for.


Room Bottleneck List

This report lists all room bottlenecks that are still present in the Optimizer output results.


Optimizer Assignments

  • This report only lists sections that the Optimizer made assignments to. 

  • It only includes information on Course Code, Section Number, Times, and Rooms.


Merging Results


  • This merge will take only the room assignments made by the Optimizer, and push those changes into the schedule found in the Section Editor.

  • No other fields associated with the section will be changed. 


To Merge Specific Sections (“Single Merge”)

  1. Click into each section.

  2. Select “merge section”.


To Merge All Results (“Bulk Merge”)

Select “merge all results” in the upper right-hand corner of the screen.

Additional Note

When optimizing combined sections, the optimizer will reference the Combined Max Enrollment (rather than the sum of all the sections).


Related Links

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.