<aside> 💡

NOTE: This schema is the standard SchooLinks course master used for all districts across all states, but this documentation is specific to Washington districts to provide specific instructions on what fields are needed specific to the state of Washington

</aside>

Schema Details

Purpose Loads courses offered by your district in the SchooLinks Course Planner.
Filename course_master.csv
What to Include All courses students or staff should be able to add within the SchooLinks Course Planner for the grades that will be planned for, and any courses that may be used for placement or credit towards graduation. ****
What to Exclude Courses not part of academic planning (lunch, study hall, etc.). Courses for grades that will not be using Course Planner and are not used for placement or credit towards graduation (for example elementary school courses).
Minimum Upload Frequency One-time during the initial Course Planner configuration, then yearly as your course offerings are updated.
Recommended Upload Frequency Nightly or weekly, to ensure that any changes to courses in your SIS are updated in SchooLinks.
Partial Data Partial data is not supported. You must send the entire set of data each time the file is sent. Courses previously loaded that are not included in the latest file will be marked as ‘dropped from sync.’ Courses marked as ‘dropped from sync’ will be kept in SchooLinks and flagged but may still be used in course planning. Note that courses dropped from sync may cause issues if they are selected by students and exported to your SIS, as they may not exist as valid courses in your system.

Data Schema

Column Name Required Data Type Description
school_sis_id_list OR school_number_list OR school_state_id_list REQUIRED COMMA-SEPARATED LIST OF STRINGS

or

STRING | The type of identifier must match the column name being used (an SIS ID, school number, or state school ID).

A comma-separated list of school identifiers if sending one row per course.

Or, if sending one row per course/school combination, a single school identifier.

Courses will still load if this field is blank, but we do not recommend this. If blank, the course will be considered “inactive” and not available at any schools. | | course_id | REQUIRED | STRING | The unique local course ID from your SIS.

The course_id should be unique across the district and correspond to the IDs of the courses that will be passed in the student current/historical courses. This should also be the course_id that exists in the student-facing course catalog.

This identifier is what will be exported for next year’s course requests for loading into your SIS for scheduling.

64 characters maximum length. | | state_course_id | CONDITIONALLY REQUIRED - WHERE RELATED TO A STATE COURSE ID | STRING | Specifies the state course code that this course relates to.

10 characters maximum length. | | cip_code * | CONDITIONALLY REQUIRED - for CTE courses | STRING | Required for CTE courses to aid in proper credit accounting and sequencing (D10) | | name | REQUIRED | STRING | The name or title of the course.

100 characters maximum length. Quoted if it contains commas. | | subject | REQUIRED | STRING | The subject area of the course used to allow students and staff to browse and filter courses.

100 characters maximum length. Quoted if it contains commas. | | credits | REQUIRED | FLOAT | The number of credits a student receives upon successful completion of this course.

Typical values include 0, 0.5, and 1.0. | | description | OPTIONAL | STRING | A description that is shown to students. It should contain information to help a student decide whether this course will meet their interests.

2000 characters maximum length. Recommend always surrounding this data with quotes. | | length | OPTIONAL | INTEGER | The number of academic terms this course lasts based on the number of academic terms configured in your Course Planner configuration.

1 for a single semester course, 2 for a full year course.

We will assume it is a full-year course (2 terms) if no length is specified. | | terms_available | OPTIONAL | COMMA-SEPARATED LIST OF INTEGERS | A list of academic terms, separated by commas, indicating when this course is offered.

Terms are represented by numbers semesters (1,2), trimesters (1,2,3), or quarters (1,2,3,4).

The course will be available in term 1 if no value is passed. | | grade_lower | OPTIONAL | INTEGER | The lowest grade that this course can be taken in. May be any valid grade year (i.e., 9, 10, 11, etc.).

If both grade_lower and grade_upper are not specified, the course will be available for grades 9-12. | | grade_upper | OPTIONAL | INTEGER | The highest grade that this course can be taken in. May be any valid grade year (i.e., 9, 10, 11, etc.).

If both grade_lower and grade_upper are not specified, the course will be available for grades 9-12. | | tags | REQUIRED | COMMA-SEPARATED LIST OF STRINGS | A list of short tag names to apply to this course, comma separated. This is what OSPI refers to as **Course Designations. See below for the CEDARS values we accept here.

Districts can also add their own custom tags if they wish to support filtering and visual differentiation of courses.** | | enrollment_notes | OPTIONAL | STRING | Additional requirements a student must meet to enroll in the course. Used for requirements unrelated to prerequisites or co-requisites such as “Requires teacher approval.”

Up to 1000 characters. Recommend always surrounding this data with quotes. | | elective_eligibility | OPTIONAL | INTEGER | Indicates if this course can be selected as an elective.

Always a 1 or 0. Defaults to 1 (may be taken as an elective) if not specified.

1 indicates this course may be taken as an elective, and 0 indicates it cannot be taken as an elective. | | alternate_eligibility | OPTIONAL | INTEGER | Indicates if this course can be selected as an alternate

Always a 1 or 0. Defaults to 1 (can be chosen as an alternate course) if not specified.

1 indicates this course may be taken as an alternate, and 0 indicates it cannot be taken as an alternate. | | max_completions_for_credit | OPTIONAL | INTEGER | The maximum number of times a student can take this course for credit.

Any integer value, such as 1, 2, or 3.

When no value is passed, we assume a default value of 1. | | requestable_by_student | OPTIONAL | INTEGER | Indicates if students can select this course in their course plan for future years.

When not requestable, staff may still add the course to student plans.

Always 1 or 0. Defaults to 1 if not specified.

1 indicates the course can be requested and planned by students, and 0 indicates the course cannot be planned by students. |

*Not required for districts outside the state of WA, not required for all courses.

Expected course tag usages:

Screenshot 2025-01-02 at 10.01.41 PM.png