Write Score OneRoster® specifications for districts IT teams

The widely popular OneRoster® format is being used as Write Score's rostering data exchange's mechanism. It solves the need to securely and reliably exchange roster information, course materials and grades between systems.  Typically, a OneRoster file is a single Zip file that contains several .csv files.  See important technical details here or general information about OneRoster here.  

OneRoster 1.1 (csv tables specifications)

At this time (July 24, 2018) we can ingest OneRoster 1.1 but the Demographics file might not be considered during the ingestion process.  Please refer to this link for official details.


In order to meet our reporting obligations with our customers, the OneRoster file we receive from the districts must comply with the following...


  1. The optional column named "grades" is required and must be listing grade(s) for which the class is attended.  This column is part of the specification but not a required one, but Write Score needs it to deliver the needed data. 
  2. The optional column named "periods" is required to allow period level reporting.  Such column contains the time slots in the day that the class will be given. If more than one period is needed, use double quotes, and separate with commas Examples: 1; "1,3,5"
  3. The optional column named "subject" must have either "Reading", "Writing" or "Reading, Writing" as a value.  (You may also use the codes from the Nation Center for Education Statistics as per OneRoster 1.1 specs). If the value of the "subject" contains commas, then those commas must be removed


  1. The optional column named "subjects" must have a value of "Reading", "Writing" or "Reading, Writing"
  2. The required column named "orgSourceId" must contain a string representing the org to which this course belongs. This may be a district level org Id.
  3. The required columned named "sourceid" column can only have unique values on each row globally.
  4. Only provide the list of courses that are being tested. 
  5. Avoid including remedial classes (especially if they contain the same teacher or students, this scenario might create duplicate information).
  6. Filter out any courses that don't have a teacher or don't have students.


  1. The optional column named "primarymust either have "true", "false" for every teacher so we may be able to determine who is the primary teacher to manage permissions and reports accordingly.
  2. Filter out any courses that don't have a teacher or don't have students.
  3. Avoid creating multiple classes enrollments for each co-teacher, it creates duplicate associations which then creates duplicates in the reports.


  1. The optional column named "grades", must have values for each student. The expected values are explained here
  2. If you plan to use our Ed-Fi Sync Tool to automatically transfer data between our organizations, make sure the "SourceId" column is the same ID valued stored in your SIS and you may optionally store the ID issued by your state department of education in the column named "userIDs" matching this format {StateId:id} (described in the OneRoster 1.1 specs here)