Skip to content

Bulk Validate

Bulk Validate lets you upload a CSV or XLSX export of every student's course requests and check, in one pass, whether each student's schedule satisfies their student type's rules. The check runs entirely in your browser — nothing is written to the database, and the report disappears when you reload the page.

Access it from the 📋 Bulk Validate tab in the navigation bar.

When to use it

  • The school's Student Information System (SIS) has produced a roster of every student's requested courses for next year, and you want to know which students are missing requirements before placements are finalized.
  • You've changed a student type's required classes or a requirement group's contents and want to find every existing student now affected.
  • You want a quick sanity check that the school's catalog and student types are consistent with what the SIS is sending.

What gets checked

For every student in the file, Bulk Validate runs the following checks:

Check Severity Description
Unknown course Warning A course number in the file is not found in the catalog. Often means a code mismatch — see renaming course codes.
Grade mismatch Warning The course is not offered in the student's grade.
Term mismatch Warning The course is not offered in the term/semester the request is for.
Block mismatch Warning A full-year course (blocks: both) was requested for one block only, or a single-block course was requested with a different block.
Duplicate course Error The same course appears more than once in the same term for the same student.
Period conflict Error Two courses are scheduled in the same term + block + period for the same student.
Full-year incomplete Warning A blocks: both course appears in only one of Term 1 or Term 2.
Missing requirement Error A required class or required group from the student type is not satisfied.
Partial requirement Warning A requirement is partially satisfied — for example, a core class appears in Term 1 but not Term 2.
Term ignored Note The school uses two semesters; rows with Term 3+ are skipped (informational only).

A student is clean when they have no errors and no warnings. Notes (Term 3 rows) do not disqualify a student from the clean list.

Student type detection

Each student is auto-classified based on the courses they signed up for:

  • If any of their requested courses has its Immersion Language set to German, the student is validated against the German immersion student type.
  • Otherwise the standard student type is used.

The two type assignments are configurable on the Bulk Validate page. The app pre-fills:

  • Standard student type — the first student type whose Immersion Language is empty.
  • German immersion student type — the first student type whose Immersion Language is German.

If your school has more than one type in either bucket, pick the right one before running the validation.

Expected file format

Bulk Validate accepts CSV and XLSX files. The first row must be column headers; one row per course request. Multiple rows per student are normal — every row that shares a student number is grouped together.

The following column headers are recognized. Other columns (advisor, teacher, room, miscellaneous textboxes) are ignored.

Column Required Format Notes
StudentID Yes ID: 7249 or 7249 The ID: prefix is stripped if present. Used to group rows.
Grade Yes Grade: 8 or 8 The Grade: prefix is stripped if present.
Textbox7 (or Term) Yes Term 1, Term 2, 1, 2 Term 1 maps to the first configured semester (typically Fall); Term 2 maps to the second (typically Spring). Term 3+ is informational only and skipped.
Period Yes A,B/2, A/5, B/1 BLOCKS/PERIOD. A,B means the course occupies both A and B blocks of the period (full-year pairing).
CourseNumber Yes 2004F-1, 5002-1 The trailing -N section number is stripped before lookup. The remainder must match a course's code in the catalog.
CourseName No Math 8 Display only. Helpful in the report.

Course code alignment

The most common cause of "course not found in catalog" warnings is a mismatch between the catalog's course codes and the SIS's course numbers. The fastest fix is to update the catalog so each course's Code matches the SIS's number (without the -N section suffix). Use the Rename code action so existing student types, requirement groups, teachers, and prerequisites cascade automatically.

Run a validation

  1. Navigate to 📋 Bulk Validate.
  2. Confirm the Standard and German immersion student type assignments at the top of the page.
  3. Click Choose CSV or XLSX… and select the file.
  4. The page processes the file in your browser and shows three summary tiles: total students, clean count, and issues count.
  5. Switch between the Issues, Clean, and All filter tabs to drill in.

Click any student row in the Issues view to expand and see every error, warning, and note attached to that student.

Download the report

Click ⬇ Download report (.csv) to save a CSV with one row per issue (or one row for a clean student). Columns:

StudentID, Grade, StudentType, Status, Severity, Category, Message

The report is generated from whatever is currently on screen — including any student-type-assignment changes you made — so you can re-run with different settings and download a fresh report each time.

Privacy and retention

Nothing on this page is written to the database:

  • The uploaded file is read entirely in the browser.
  • Validation runs in memory.
  • The on-screen report and the downloaded CSV are the only outputs.
  • Reloading the tab clears the report.

This makes Bulk Validate safe to run with raw SIS exports that include student names and IDs. If you save the downloaded report to disk, treat it like any other file containing student data.