OneRoster Data Models

The OneRoster specifications define a number of objects to represent data. The OneRoster API article provides an overview of OneRoster in Campus. The following documentation outlines these objects and how the data is modeled based on the Campus SIS.

All data is restricted to the active year.  Multiple years are not supported.  The scope of the data changes when districts switch their active year, under System Administration > Calendar > School Years.

All Students, Teachers, Administrators, Guardians, and Relatives are modeled through the Users object.  Therefore, people must have active User Accounts in Campus in order to be accessed via OneRoster.


Object and Model Diagram

OneRosterModelAssociations Copy

Back To Top

Object Links below navigate to specific sections of the OneRoster specifications dealing with that object.


Academic Sessions

OneRoster Academic Session Object 

Specification Description

AcademicSessions represent durations of time. Typically they are used to describe Terms, grading periods, and other durations, (e.g. school years).

Term is used to describe a period of time during which learning will take place. Other words for Term could be in common use around the world (e.g. Semester). The important thing is that Term is a unit of time, often many weeks long, into which Courses are scheduled.

Grading Period is used to represent another unit of time, that within which LineItems are assessed. A Term may have many grading periods, a grading period belongs to a single Term. A class may be assessed over several grade periods (represented by a LineItem being connected to a grading period)

Campus Description

Academic sessions are the equivalent of Term Schedules for a School Calendar.

The Campus SIS uses Terms to serve as Grading Periods for aligning Grading Tasks / Standards and Sections to LineItems. Term masks are configured at the Course level and apply to Sections based on their Section placement.

A district can create a Grading Task called "progress grade" and set the Term mask to occur in quarter one to refer to the equivalent of a mid-Term grading period, but no such grading period record exists under the Term schedules. See LineItem model for more details about grading.

External LMS Exclude flags do NOT exist at the Term level.  However, it inherits exclusion logic from higher level objects such as Schedule Structure, Calendar, and School.

Utilizes v_OneRosterTerm and v_OneRosterGradingPeriod.

Object Properties and Elements


OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example / Notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Term = Term.TermID

Grading Period = Term.TermGUID OR ScheduleStructure .StructureGUID

 

System Administration > Calendar > Calendar > Terms

Terms and Grading Periods are essentially handled as the same object, however Grading Periods also include a placeholder record for One-Time grading purposes.

Terms and Grading Periods must be in a schedule structure with an active trial in the active year.

status

Status

1

active

N/AN/AAll Terms / GradingPeriods are considered active.  The status is not based on today's date.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

N/AN/AToday's Date.  Not based on record modification.

metadata

MetaData

0..1

“comment” : “grading period 1”

N/AN/ANo custom fields were implemented for Academic Sessions.

title

String

1

Spring Term

Term = Term.Name
GradingPeriod = TermName OR One-Time + Calendar.Name + ScheduleStructure.Name for One-Time grading purposes.
System Administration > Calendar > Calendar > Terms > Term Name 

startDate

Date

1

2012-01-01

Term = Term.StartDate
GradingPeriod = Term.StartDate OR Min(Term.StartDate) for One-Time grading purposes.
System Administration > Calendar > Calendar > Terms > Term Start Date 

endDate

Date

1

2012-04-30

Term = Term.EndDate

GradingPeriod = Term.EndDate OR Min(Term.StartDate) for One-Time grading purposes.

System Administration > Calendar > Calendar > Terms > Term End Date 

type

Type

1

”Term” | “gradingPeriod” | “schoolYear | semester”

Term = 'Term'

GradingPeriod = 'GradingPeriod'

N/A

Campus is supporting Term and GradingPeriod types only.

The specifications indicate that LineItems (GradingTasks/Standards & Section) are associated with Grading Periods and not Terms.  Therefore Campus is duplicating Terms across Grading Periods to manage this relationship. 

Campus is also implementing a generic One-Time grading period for One-Time LineItems.

SchoolYear and Semester are not supported.  SchoolYear is restricted to active year only.
Some districts regulate semesters through Grading Tasks and composite grading, and not Terms for scheduling purposes.

parent

 

0..1

(link to parent (if applicable))

N/AN/ANot implemented since SchoolYear and Semester are not implemented and GradingPeriods are essentially the same as Terms.

children

 

0..*

(link to children (if applicable))

N/AN/ANot implemented since SchoolYear and Semester are not implemented and GradingPeriods are essentially the same as Terms.

 

 

Back To Top



Class

OneRoster Class Object

Specification Description

A class is an instance of a Course, into which students and teachers are "enrolled". A class is typically held within a Term.

Campus Description

Classes are the equivalent of Course Sections. 

External LMS Exclude flags exist at the Section level to exclude records from the Class model.  Also inherits exclusion logic from higher level objects such as Course, Schedule Structure, Calendar, and School.

Utilizes v_OneRosterClass

Object Properties and Elements

 

OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example  / notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Section.SectionIDScheduling > Course > Section

System Defined

Campus is implementing Section ID instead of GUID, because it is more recognizable when it is used as a foreign key in other models such as lineItems.

status

Status

1

active

Trial.Active=1
Course.Active=1
SchoolYear.Active=1
Scheduling > Trials
Scheduling > Course
System Administration > Calendar > School Years

Active only

Inactive Sections are automatically excluded.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

Section.ModifiedDateScheduling > Course > Section 

metadata

MetaData

0..1

“comment”: “9am to 11am”

N/AN/ANo custom fields were implemented for Classes.

title

String

1

Basic Chemistry

Course.Number + Section.Number +
Course.Name

Scheduling > Course + SectionCombines both Course and Section names and numbers to avoid need to pull Course objects where working with classes.

classCode

String

0..1

Chem101-Mr Rogers

Section.TeacherDisplayScheduling > Course > Section: Teacher Display Name 

classType

ClassType

0..1

scheduled | homeroom

Course.HomeRoom = 1 ELSE ScheduledScheduling > CourseAll are considered "scheduled", except where home room flag is marked.

location

String

0..1

“room 19”

Room.Name via Section.RoomIDScheduling > Course > Section: Room 

grade

String

0..1

9

N/AN/ANot Implemented.

subjects

String

0..*

“chemistry”

Course.SubjectType or Course.CoreSubject

Scheduling > Course:Subject Type
or
Scheduling > Course:Core Academic Class

Subjects are inherited from the parent Course.
Uses federal standards.

IF Subject Type = "Core" THEN Core Academic Class ELSE Subject Type

Course

 

0..1

(Link to Course)

Course.CourseIDScheduling > CourseHyperlink to Course

school

 

1

(Link to school)

School.SchoolIDSystem Admin > SchoolLinked via Course calendar.

Terms

 

0..*

(links to academicSessions (Terms))

Term.TermIDSystem Admin > Calendar > Calendar > TermsLinked via Section placement.
Back To Top



Course

OneRoster Course Object

Specification Description

A Course is a Course of study onto which a student may be enrolled. It typically has a curriculum and may be taught to different students by different teachers. It is likely that several classes of a single Course may be taught in a Term. (For example, a school runs Grade 9 English in the spring Term. There are four classes, each with a different 30 students, taught by 4 different teachers. However the curriculum for each of those four classes is the same – the Course curriculum).

Campus Description

Courses are the equivalent of Campus Courses.  Courses are parents of Sections (Classes).

External LMS Exclude flags exist at the Course level to exclude records from the Course model. Also inherits exclusion logic from higher level objects such as Schedule Structure, Calendar, and School.

Uses v_OneRosterCourse

Object Properties and Elements

 

OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example / Notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Course.CourseIDScheduling > Course

System Defined

Campus is implementing Course ID instead of GUID, because it is more recognizable and easier to sort.

status

Status

1

active

Course.Active=1
SchoolYear.Active=1
Scheduling > Course
System Administration > Calendar > School Years
Active only.
Inactive Courses are automatically excluded.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

Course.ModifiedDateScheduling > Course 

metadata

MetaData

0..1

“core academic Course” : “yes”

N/AN/ANo custom fields were implemented for Classes.

title

String

1

Basic Chemistry

Course.NameScheduling > Course Name 

schoolYear

AcademicSession

0..1

(link to academicSession, if applicable)

N/AN/ANot Implemented
Active year only. (Linked via Course Calendar)

CourseCode

String

1

CHEM101

Course.NumberScheduling > Course Number 

grade

String

0..1

9

N/AN/AOptional. Not implemented

subjects

String

0..*

“chemistry”

Course.SubjectType or Course.CoreSubject

Scheduling > Course > Subject Type or Scheduling > Courses > Core Academic Class

Uses federal standards.

IF Subject Type = "Core" THEN Core Academic Class ELSE Subject Type

org

 

0..1

(Link to org, if applicable)

  

School and District: linked via Course calendar.

 

Back To Top



Demographics

OneRoster Demographics Object

Specification Description

Demographics information is taken from the Common Educational Data Standards from the US government. (http://ceds.ed.gov). Demographics are OPTIONAL.

Note that demographics data is held in its own service, and that access to this service is considered privileged. Not all consumer keys will be able to request demographics data.

Demographic Data is modeled in LIS, but the sort of demographic data required by K12 is very different to that modeled in LIS. For this reason, new structures have been created.

The sourcedId of the demographics MUST be the same as the sourcedId of the user to which it refers.

Campus Description

Supplemental demographic information (race, gender, birthDate..etc) found under Current Identity for Users; Students, Teachers, Administrators, Relatives, and Guardians. 

External LMS Exclude flags do NOT exist at the Term level.  However, it inherits exclusion logic from Users. See user model for more details.

Uses v_OneRosterDemographics.

Object Properties and Elements

 

OneRoster SpecificationsCampus Implementation

Demographic Term

DataType

Multiplicity

Data Type

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Identity.identityGUIDCensus > People > Demographics

Uses current identity.

 

status

Status

1

active

N/AN/A

Always active since pulls on current identity.

dateLastModified

Date

1

2012-04-23T18:25:43.511Z

Identity.modifiedDateCensus > People > DemographicsBased on last modified value

birthdate

Date

0..1

Date

Identity.birthDateCensus > People > Demographics > Birth Date 

sex

SexVocab

0..1

Vocabulary (“Male” | “Female” )

Identity.gender

Census > People > Demographics > GenderReports null if no gender is populated.

americanIndian OrAlaskaNative

YesNoVocab

0..1

Vocabulary (“Yes” | “No” )

Identity.raceEthnicityFed=2Census > People > Demographics > Federal DesignationRace is based on Federal Designation

asian

YesNoVocab

0..1

Vocabulary (“Yes” | “No” )

Identity.raceEthnicityFed=3Census > People > Demographics > Federal DesignationRace is based on Federal Designation

blackOrAfrican American

YesNoVocab

0..1

Vocabulary (“Yes” | “No” )

Identity.raceEthnicityFed=4Census > People > Demographics > Federal DesignationRace is based on Federal Designation

nativeHawaiian OrOtherPacificIslander

YesNoVocab

0..1

Vocabulary (“Yes” | “No” )

Identity.raceEthnicityFed=5Census > People > Demographics > Federal DesignationRace is based on Federal Designation

white

YesNoVocab

0..1

Vocabulary (“Yes” | “No”)

Identity.raceEthnicityFed=6Census > People > Demographics > Federal DesignationRace is based on Federal Designation

demographicRace TwoOrMoreRaces

YesNoVocab

0..1

Vocabulary (“Yes” | “No”)

Identity.raceEthnicityFed=7Census > People > Demographics > Federal DesignationRace is based on Federal Designation

hispanicOrLatino Ethnicity

YesNoVocab

0..1

Vocabulary (“Yes” | “No” )

Identity.hispanicEthnicity=YCensus > People > Demographics > Hispanic/Latino 

countryOfBirthCode

String

0..1

Vocabulary

Identity.birthCountryCensus > People > Demographics > Birth Country 

stateOfBirth Abbreviation

String

0..1

Vocabulary

Identity.birthStateCensus > People > Demographics > Birth State 

cityOfBirth

String

0..1

String

Identity.birthCityCensus > People > Demographics > Birth CityDepends on geographic state dictionary

publicSchool ResidenceStatus

String

0..1

Vocabulary

 Click here to expand...

Public School Residence Status

Definition

An indication of the location of a persons legal residence relative to (within or outside) the boundaries of the public school attended and its administrative unit.

Option Set
DescriptionCode
Resident of administrative unit and usual school attendance area01652
Resident of administrative unit, but of other school attendance area01653
Resident of this state, but not of this administrative unit01654
Resident of an administrative unit that crosses state boundaries01655
Resident of another state01656
N/AN/AOptional. Not implemented
Back To Top



Enrollment

OneRoster Enrollment Object

Specification Description

An enrollment is the name given to the fact that an individual will be taking part in a Course or class. In the vast majority of cases, users will be students learning in a class, or teachers teaching the class. Other roles are possible too.

Campus Description

Enrollments are the means of associating Students and Teachers to classes (Course Sections).

Student Enrollments are the equivalent of Roster records.

Teacher Enrollments are the equivalent of Section Staff History records. 

External LMS Exclude flags exist at the Enrollment and District Assignment level to exclude records from the Enrollment model. It also inherits exclusion logic from higher level objects such as GradeLevel, Schedule Structure, Calendar, and School for Students and just School for Teachers.

Uses v_OneRosterEnrollment, which in turn uses v_OneRosterStudentEnrollment and v_OneRosterTeacherEnrollment for students and teachers respectively.

Object Properties and Elements

 

OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example / Notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Student='S'+ Roster.RosterID
Teacher='T'+ SectionStaffHistory .HistoryID

Student = Scheduling > Course > Section > Roster
Teacher = Scheduling > Course > Section > Staff History, Staff Type = Primary or Teacher.

Prefix of S / T  differentiates students from teachers and ensures unique values in the event that a student rosterID is the same as a teacher's Section staff historyID.

Teacher excludes Section staff and other aides.

Teacher must have district assignment teacher flag set to true and not flagged as External LMS Exclude.

Course and Section must be flagged as active and occur in active trial during the active year.  Above is true for both Students and Teachers.

status

 Status

1

active

Student=Roster
Teacher=SectionStaffHistory
Student = Today's date between roster start and end dates.
Teacher = Today's date between staff history start and end dates or between teacher access start and end dates, depending on which dates are more inclusive.
 

dateLastModified

 Date

1

2012-04-23T 18:25:43.511Z

Student=Roster.ModifiedDate
Teacher=SectionStaffHistory .ModifiedDate

Student = Scheduling > Course > Section > Roster
Teacher = Scheduling > Course > Section > Staff History

 

metadata

MetaData

0..1

“comment” : “primary choice”

N/AN/ANo custom fields were implemented for Enrollments.

userSourcedId

GUID

1

89898982

Student='S'+Roster.PersonID

Teacher='T'+SectionStaffHistory .PersonID

Student = Scheduling > Course > Section > Roster

Teacher = Scheduling > Course > Section > Staff History

PersonID of Roster for students and PersonID of SectionStaffHistory for teachers.

classSourcedId

GUID

1

117819812

Student=Roster.SectionID
Teacher=SectionStaffHistory .SectionID

Student = Scheduling > Course > Section > Roster

Teacher = Scheduling > Course > Section > Staff History

Section

schoolSourcedId

GUID

1

828928928

School.SchoolGUID via roster/SectionStaffHistory, trial, and calendar.System Administration > Resources > School InformationSchool

role

ROLE

1

“teacher” | "student" | "parent" | "guardian" | "relative" | "aide" | "administrator"

'Student'=Roster

'Teacher'=SectionStaff

'Student' = Roster

'Teacher' = SectionStaff

Teacher and Students only.

primary

Boolean

0..1

Applicable only to teachers. Only one teacher should be designated as the primary teacher for a class.

SectionStaffHistory.StaffType (P,T)Section Staff: Staff Type

Staff type = Primary, then Primary, else (Teacher) not primary.

Back To Top



Grading Period

OneRoster Grading Period Object

Specification Description

Grading Period is used to represent another unit of time, that within which LineItems are assessed. A Term may have many grading periods, a grading period belongs to a single Term. A class may be assessed over several grade periods (represented by a LineItem being connected to a grading period).

Campus Description

The specifications incorporate this into AcademicSesstion as one of the enumerations for AcademicSessionType

Grading Periods are intended to be used for associating grades with a time period.

In Campus, Grading Tasks and Standards are associated with Terms.  There is no separate construct for GradingPeriods. 

Campus populated Grading Periods with Term records for OneRoster, due to the fact that LineItems are associated with GradingPeriods and not Terms. Campus also created a placeholder One_Time GradingPeriod for associating One-Time Grading Tasks and Standards.  See the LineItem model for more details around grading.

External LMS Exclude flags do NOT exist at the GradingPeriod or Academic Session level.  However, it does inherit exclusion logic from higher level objects such as Schedule Structure, Calendar, and School.

Uses v_OneRosterGradingPeriod.

Object Properties and Elements

See AcademicSession model for details.

Back To Top


Line Item

OneRoster LineItem Object

Specification Description

LineItems are assignments in LIS, they make up the column headings in a gradebook, and many students will each complete LineItems as they are assessed.

Campus Description

Campus only supports LineItems for Course-Level grades that are posted via Grading Tasks / Standards i.e. GradingScore and not GradeBook-Level Grades for Assignments i.e. LessonPlanScore

This is the Campus equivalent of Grading Task / Standard and Term Masks for a Section.  These are  tracked in the Campus GradingTaskCredit database table.

Campus implemented 3 custom fields to track additional elements not included in the specification.  These fields deal with identifying Standards versus Grading Tasks, whether the Grading Window is open, and whether a Grading Task or Standard is a One-Time LineItem.

External LMS Exclude flags do NOT exist at the LineItem level.  However, it does inherit exclusion logic indirectly through Grading Tasks / Standards, courses, and sections, as well as from higher level objects such as Schedule Structure, Calendar, and School.

Uses v_OneRosterLineItem.

Object Properties and Elements


OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example  / notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

Section.SectionID+
Term.TermID+
GradingTask.TaskID

(Derived via GradingTaskCredit)

Scheduling > Course > Grading Tasks/StandardsSystem Defined.
Combination of Section, Term, and Grading Task / Standard.
Term is linked via Grading Task Term masks.

status

Status

1

active

Course.Active=1
Trial.Active=1
SchoolYear.Active=1
Scheduling > Course > Grading Tasks/StandardsOnly active.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

COALESCE([gtc].modifiedDate, GETDATE()) AS [dateLastModified]Scheduling > Course > Grading Tasks/Standards 

metadata

MetaData

0..1

 

ext_infiniteCampus_is GradingWindowOpen = GradingTaskCredit.ActiveMask

ext_infiniteCampus_isOneTime = GradingTask.GradedOnce

ext_infiniteCampus_isStandard = GradingTask.StandardID

Scheduling > Course > Grading Tasks/Standards > Active Mask

Grading & Standards > Grading Tasks / Standards Bank

Three custom fields were added to LineItems. 

IsStandard  was added to help differentiate between Grading Tasks and Standards.

IsGradingWindowOpen was added to help determine if Results are currently being accepted for this LineItem.

IsOneTime was added to help determine if LineItem spans all terms across the section versus only one term within that section's placement.

title

String

1

Maths Test 1

[Course].[number] + ' ' + [Course].[name] + '-' + CONVERT(VARCHAR(MAX), [Section].[number]) + ' ' + [Term].[name] + '-' + [gradingtask].[name]

Grading & Standards > Grading Tasks/Standards

Combination of Course, Section, Term, and Grading Task / Standard.

description

String

0..1

Simple addition test

GradingTask.CommentsGrading & Standards > Grading Tasks/Standards Bank > CommentsComments from Grading Task / Standard.

assignDate

Date

1

2012-01-01T18:25:43.511Z

Term.StartDate
(GradingTaskCredit.TermMask)
System Administration > Calendar > Calendar > TermsStart of Term OR Min Term Start Date for One-Time Grading Tasks / Standards

dueDate

Date

1

2012-01-05T18:25:43.511Z

Term.EndDate
(GradingTaskCredit.TermMask)
System Administration > Calendar > Calendar > TermsEnd of Term OR Min Term End Date for One-Time Grading Tasks / Standards

class

 

1

<link to class>

Course.SectionScheduling > Course > Section 

category

 

1

<link to category>

N/AN/AThese are hard coded as "Posted Grades".  Assignment Groups are not supported.

gradingPeriod

AcademicSession

1

<link to grading period>

Term.TermID
(GradingTaskCredit.TermMask)
System Administration > Calendar > Calendar > Terms

Essentially the same as Terms.

One-Time Grading Tasks / Standards are associated with a placeholder Grading Period named One-Time + Calendar + Schedule Structure Name

resultValue

ResultValue

1

“min” : “0.0”, “max” : “100.0”

ScoureGroup.ScoureGroupID
(GradingTaskCredit .ScoreGroupID)

Scheduling > Course > Grading Tasks/Standards > Score Group / RubricGrading Tasks are scored based on percentages which are between -999.999 and 999.9999.  Standards are scored based on numeric value ranges configured under Rubrics if power law rule is enabled. Letter Grades are also supported through customizations to the Result model.  See Result model for details.
Back To Top



Line Item Category

OneRoster LineItem Category Object

Specification Description

A Category is the name given to a grouping of LineItems. (LineItems being equivalent to assignments which students will complete). Examples of categories include “homework”, “quizzes” or “essays”.

Campus Description

Campus is only supporting Course Level Grading Tasks / Standards, which are organized into a single category of "Posted Grade".  Assignment Categories are not supported.

Uses v_OneRosterLineItemCategory.

Object Properties and Elements


OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example  / notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

N/AN/A'00000000-0000-0000-0000-000000000000'

status

Status

1

active

N/AN/AAlways active

dateLastModified

Date

1

2012-04-23T18:25:43.511Z

N/AN/A1/1/1970

metadata

MetaData

0..1

 

N/AN/ANo custom fields were implemented for LineItemCategories.

title

String

1

Homework

N/AN/A"Posted Grade"
Back To Top



Org (Organization)

OneRoster Org Object

Specification Description

ORG is defined here as a structure for holding organizational information. An ORG might be a school, or it might be a local, statewide, or national entity. ORGs will typically have a parent ORG (up to the national level), and children, allowing a hierarchy to be established.

Campus Description

The Campus OneRoster API is designed to be used at the District Edition. Therefore, Campus is only supporting School and District (Local) and not State or National Organizations.  Schools are children of the District.

External LMS Exclude flags exist at School Level.

ORG relies on two separate views: v_OneRosterDistrict and v_OneRosterSchool.

Object Properties and Elements


OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example / Notes

DBUIComments

sourcedId

GUID

1

9877728989-ABF-0001

District.DistrictGUID
School.SchoolGUID

System Administration > Resources > School
System Administration > Resources > District Information

System Defined

GUID avoids conflict of District and School sharing the same ID for sourcedId generation purposes.

status

 

1

active

District.Inactive!=1 or
District.Inactive is null
N/A

System Defined

Active only. Excludes Districts that are inactive or Schools that are associated with inactive Districts.

dateLastModified

 

1

2012-04-23 T18:25:43.511Z

School.ModifiedDate
District.ModifiedDate
System Administration > Resources > School
System Administration > Resources > District Information
Updated on changes.

metadata

 

0..1

“Classification”: “Public”

N/AN/ANo custom fields were implemented for Organizations.

name

String

1

IMS High

School.Name
District.Name
System Administration > Resources > School
System Administration > Resources > District Information
District / School Name

type

OrgType

1

school | local | state | national

N/AN/A

District='local'
School='school'

identifier

String

0..1

Human readable identifier for this org (e.g. NCES ID).

School.Number
District.Number

System Administration > Resources > School

System Administration > Resources > District Information

District / School Number

parent

Org

0..1

(link to parent (If applicable))

  District for School

children

Org

0..*

(link to children (if applicable))

  Schools under District
Back To Top



Result

OneRoster Result Object

Specification Description

Results represent individual scores for LineItems.

Campus Description

Campus supports Results as Posted Grades for Grading Tasks / Standards, not Assignment Scores.

The specifications were written primarily to support scoring Assignments with Points / Points Possible.  Campus only supports Course-Level Grading, which typically deals with two key elements; a Percent and Letter Grade for Traditional Grading Tasks or a Numeric Value and Rubric Grade for Standards-Based Grading.  The specifications only supports one Result score element.  Therefore, Campus has added a custom ScoreGrade field to support an additional element for both Traditional and Standards-Based Grading.

Results are the only object that Campus supports Pass-Back functionality.  Namely, a vendor can pass back Results for Campus defined LineItems (Grading Tasks / Standards).  Vendors can pass back just a Score and Campus will automatically calculate the corresponding custom GradingScore value based on Score Groups and Rubrics.  I.e. 80% -> "B-" or 4 -> "Advanced Proficient"

For additional details on grading please see this document.

Campus implemented a custom field to track an additional element not included in the specification.  This field allows for a Letter Grade or Rubric Grade to be retrieved or passed back, in addition to a Numeric Grade or Percent.

External LMS Exclude flags do NOT exist at the Result level.  However, it does inherit exclusion logic indirectly from Grading Tasks/Standards, Courses, Sections,  as well as higher level objects such as Schedule Structure, Calendar, and School.  It also enforced student exclusion logic from Enrollment and GradeLevel.

Uses v_OneRosterResult.

Object Properties and Elements


OneRoster SpecificationsCampus Implementation

Data Element Name

DataType

Multiplicity

Example  / notes

DBUIComments

sourcedId

GUID

1

9877728989 -ABF-0001

GradingScore .externalLMSSourcedIDN/ASystem Defined.
GUID is generated by system of record, i.e. Campus or Vendor.

status

Status

1

active

SchoolYear.Active=1
Course.Active=1
Trial.Active=1

 

Active only.
Section must be in active Trial, for an active Course, in the active School Year.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

GradingScore.modifiedDateSee commentThere are numerous places in the UI where grades can be posted.
Updated if Grades are passed back by vendors through the Campus API

metadata

MetaData

0..1

 

ext_infiniteCampus_scoreGrade =GradingScore.ScoreScoreCustom field was added by Campus to keep track of a score that is typically a Letter Grade or Rubric Grade.

lineItem

GUID

1

<link to LineItem>

GradingScore.TaskIDScheduling > Course > Grading Tasks / StandardsThe Grading Task or Standard being graded.

student

GUID

1

<link to student>

S+GradingScore.PersonidRoster > StudentThe Student PersonID with a prefix of S.

score

String

1

67.0

IF Rubric THEN GradingScore .ProgressTrendVal
IF ScoreGroup THEN Percent
Power Law Numeric Value
Percent
Numeric score depending on whether grading is aligned to a Score Group or Rubric.  See grading document for more details.

resultStatus

ResultStatus

1

not submitted | submitted |
partially graded | fully graded |
exempt

GradingScore.Percent or GradingScore.Score or GradingScore .ProgressTrendValPercent/Score

Submitted / Not Submitted only.

If the Result has a percent, score, or numeric trending value then it is considered submitted.  Else, it is not submitted.

date

Date

1

2012-01-05T18:25:43.511Z

GradingScore.DateN/ADate when Result was entered.

comment

String

0..1

“excellent”

GradingScore.CommentsComments 
Back To Top



Score Group (Rubrics)

N/A (Not in specification)

Specification Description

N/A (Not in specification)

Campus Description

The specifications support ResultValues, which were designed for Assignment-Level Grading.  Campus supports Course-Level Grading, which allows for a predefined set of acceptable grades and corresponding min / max ranges.

In Campus Score Groups and Rubrics are associated with Grading Tasks and Standards to define the list of acceptable Grading values.

Campus implemented custom models to a set of elements which are not in the specifications.  These models help vendors better understand how to consume and passback grades from Campus.  See the grading documentation for more details.

Uses v_OneRosterScoreGroup and v_OneRosterScoreListItem.

Object Properties and Elements

Score Group / Rubric


Field

Type

Description

Multiplicity

DBUIComments
sourcedIdStringUnique identifier of score group / rubric1ScoreGroup.ScoreGroupIDN/ASystem defined.
statusStringStatus of score group 'active'N/AAlways active.
dateLastModifiedDateDate score group was last modified Getdate()N/AAlways now.

name

String

Name of score group

1

ScoreGroup.NameGrading & Standards > Score Groups & Rubrics 

type

String

Value indicating 'Rubric' versus 'Traditional'

1

Traditional: ScoreGroup.Type = T
Rubric: ScoreGroup.Type = R

Grading & Standards > Score Groups & Rubrics 

scoreListItems

ScoreListItemModel

List of items within score group

1..*

ScoreListItemScore Group / Rubric List Items Detail 

Score List Items


Field

Type

Description

Multiplicity

DBUIComments

itemID

String

Unique identifier of item

1

ScoreListItem.ItemIDN/ASystem Defined

name

String

Display name of score – e.g. ‘Exceeds’

0..1

ScoreListItem.nameScore Group / Rubric List Items Detail > Name 

scoreGrade

String

Traditional letter grade or rubric grade value – e.g. ‘A’, ‘E’, ‘1’

0..1

ScoreListItem.ScoreScore Group / Rubric List Items Detail > Score 

minPercent

Number

Minimum percentage required to receive this score (Traditional Grading) – e.g. 82.5

0..1

ScoreListItem.MinPercent

Score Group List Items Detail >
Detail Minimum %

For Score Groups only

rubricValueNumber

Number

Numeric value associated with this rubric score. (Rubric Grading in ascending value)

0..1

ScoreListItem.RubricNumericVal OR  ScoreListItem.Seq

Rubric List Items Detail >
Power Law Numeric Value OR Sequence

For Rubrics Only
Utilizes power law rules if populated on Rubric, otherwise uses inverted sequence.

seq

Number

Sequence value for ordering of list items

1

ScoreListItem.SeqScore Group / Rubric List Items Detail > Sequence 
Back To Top



Term

OneRoster Term Object

Specification Description

Term is used to describe a period of time during which learning will take place. Other words for Term could be in common use around the world (e.g. Semester). The important thing is that Term is a unit of time, often many weeks long, into which Courses are scheduled.

Campus Description

OneRoster Term is synonomous with Campus Term.

Terms are children of Academic Sessions.

Uses v_OneRosterTerm.

Object Properties and Elements

See AcademicSession model for details.

Back To Top


User

OneRoster User Object

Specification Description

Teachers and Students are human beings that are teaching or studying in a class respectively. LIS represents these with Person. For the case of binding, it is proposed that a single User class is used to represent both teachers and students, and that a role element be used to distinguish a user’s natural role. In the rest binding to follow, it is possible to select teachers and students within a school, Course or class. In LIS, users have an “institution role” set within the person record to identify their (primary) role.

Note that this requirement is expanded to introduce other types of human: parents, guardians, relatives and aides.

Humans may have relationships with other humans. For example, a student may have parents. The “agents” attribute allows for relationships between humans to be expressed. Note that these are typically from the point of view of the student – so a student will link to its parents (via the agent attribute). The reverse view MUST also be modeled, so for example, a user of role “parent” MUST have agents which are of type “student”.
Note: teachers MUST NOT be declared as agents of students – the teaching relationship is covered via enrollments.

Campus Description

In 1629 Campus only implemented Users for Students and Teachers.  In 1633 Campus extended Users to also include Administrators, Guardians, and Relatives. Aide and Parent are not supported due to a lack of standardization in tracking across districts.

The specifications do not support the object of a person.  In Campus a person can have multiple roles.  Therefore a unique User sourcedID needs to be generated for each role that a person serves. 

All people must have at least one active User Account in order to be included in the User model. If a person has multiple Users Accounts in Campus, then only the top one will be selected based on Home Page values.

Campus implemented a custom a element to track grade level for students, which are not in the v1.0 specifications.

External LMS Exclude flags do NOT exist at the User level.  However, it does inherit exclusion logic indirectly from Enrollments and District Assignments, as well as higher level objects such as Grade Level, Schedule Structure, Calendar, and School for Students and Teachers.

Uses v_OneRosterUser, which is a union of the following views: v_OneRosterStudent, v_OneRosterTeacher, v_OneRosterAdministrator,
v_OneRosterGuardian, v_OneRosterRelative.

Object Properties and Elements


Data Element Name

DataType

Multiplicity

Example  / notes

DBUIComments

sourcedId

GUID

1

9877728989 -ABF-0001

Student: 's'+UserAccount.PersonID
Teacher: 't'+UserAccount.PersonID
Administrator:'a' +UserAccount.PersonID
Guardian:'g' +UserAccount.PersonID
Relative:'r' +UserAccount.PersonID

System Administration > User Security > User Account

System Defined.

Person tied to top User Account that is not disabled or expired.

See User Role UI description for more details on how a person is classified as a Student, Teacher, Administrator, Guardian, or Relative.

A person can have multiple roles, but the specifications do not support a single user having multiple roles.  Therefore we needed to prefix the role to the personID to ensure uniqueness.

We pull user account details from a single account, regardless of roles.  If a person has multiple user accounts we grab the first account in this order: 1) Campus Application, 2) Campus Instruction, 3) Campus Portal, 4) Student Portal, 5) Highest UserID from any Other Account

status

Status

1

active

Student = Enrollment
Teacher = EmploymentAssignment
Administrator = EmploymentAssignment
Guardian = RelatedPair
Relative = RelatedPair

 

Student: Student Information > General > Enrollments
Teacher: Census > District Assignment
Administrator: Census > District Assignment
Guardian: Census > Relationships
Relative: Census > Relationships

Status is based on Role criteria and not User Account.  Only people with active user accounts are returned (Not disabled / Not expired based on today's date).

Student: Today's date is between (inclusive) enrollment start and end date and enrollment is not flagged as a no show. Enrollment is in active school year.

Teacher: Today's date is between (inclusive) District Assignment  start and end date.  Assignment is flagged as teacher.

Administrator: Today's date is between (inclusive) District Assignment  start and end date.  Assignment is flagged as something other than teacher.

Guardian: Today's date is between (inclusive) relationship start and end date to Student.  Guardian is flagged.

Relative: Today's date is between (inclusive) relationship start and end date to Student.  Guardian is NOT flagged.

dateLastModified

Date

1

2012-04-23T 18:25:43.511Z

See individual views for details.

All Roles: System Administration > User Security > User Account & Census > Identity > Current Identity

Student: All + Student Information > General > Enrollments

Teacher / Administrator: All + Census > District Assignment

Max modified date across Enrollment (Student), Assignment (Teacher/Administrator), Identity (All), and UserAccount (All)

metadata

MetaData

0..1

 

Students Only: ext_infiniteCampus_grade =Max(Enrollment.Grade)Students Only: Student Information > General > EnrollmentsPulls max value across all enrollments in active year, starting with active enrollments, based on today's date. 
Note: alpha grades such as 'KG' will be pulled instead of a numeric grade such as '01', if student has multiple active enrollments. 

username

String

1

pjn@imsglobal.org

UserAccount.UserName

System Administration > User Security > User Account

We pull user account details from a single account, regardless of roles.  If a person has multiple user accounts we grab the first account in this order: 1) Campus Application, 2) Campus Instruction, 3) Campus Portal, 4) Student Portal, 5) Highest UserID from any Other Account

userId

GUID

0..1

This is an external user id that should be used for this user, if for some reason the sourcedId cannot be used. This might be an active directory id, an LTI id, or some other machine readable identifier that is used for this person.

UserAccount.UserIDSystem Administration > User Security > User AccountWe pull user account details from a single account, regardless of roles.  If a person has multiple user accounts we grab the first account in this order: 1) Campus Application, 2) Campus Instruction, 3) Campus Portal, 4) Student Portal, 5) Highest UserID from any Other Account

givenName

String

1

Phil

Identity.FirstNameCensus > DemographicsCurrent Identity

familyName

String

1

Nicholls

Identity.LastNameCensus > DemographicsCurrent Identity

role

Role

1

teacher | student | parent | guardian | relative | aide | administrator

See individual views for details.

Administrator Flags:

[ea].[specialed] = 1 OR
[ea].[program] = 1 OR
[ea].[behavior] = 1 OR
[ea].[health] = 1 OR
[ea].[responseApprover] = 1 OR
[ea].[rti] = 1 OR
[ea].[advisor] = 1 OR
[ea].[supervisor] = 1 OR
[ea].[counselor] = 1 OR [ea].[foodservice] = 1 OR
[ea].[approver] = 1 OR [ea].[framProcessor] = 1

 

Other roles of Aide and Parent are not supported.

Census Relationship Type names are stored as text and therefore not reliable.

A "Student" has an Enrollment in active year.

A "Teacher" has a District Assignment flagged as Teacher.

An "Administrator" has a District Assignment with at least one flag other than 'Teacher'.

 Click here to expand full list
  • Special ed = specialed
  • Program = program
  • Behavior Admin = behavior
  • Health = health
  • Behavior Response Approver = responseApprover
  • Response To Intervention = rti
  • Advisor = advisor
  • Supervisor = supervisor
  • Counselor = counselor
  • Foodservice = foodservice
  • Self service approver = approver
  • Fram processor = framProcessor

A "Guardian" has a Census Relationship to a Student that is flagged as Guardian.

A "Relative" has a Census Relationship to a Student that is not flagged as Guardian.

A person will have a User record for any and all qualifying roles. 

identifier

String

0..1

9898-PJN

Student = Person.StudentNumber
Teacher / Administrator = Person.StaffNumber

Census > Demographics 

email

String

0..1

pjn@imsglobal.org

contact.emailCensus > Demographics 

sms

String

0..1

+44 07759 555 922

N/AN/ANot Implemented

phone

String

0..1

+44 07759 555 922

contact.homePhoneCensus > Demographics > Other Phone 

agents

User

0..*

<links to other people>

 Guardian/Relative = Census > RelationshipsOther people is interpreted in the specifications as Students. 
Teachers are already linked to Students through course sections and not such agents will be populated based on the specifications. 
Guardians and Relatives are linked to students via their census relationships and do appear under agents.
The linkage between Administrators and students is not applicable.

orgs

 

1..*

<links to orgs> (in most cases, this is a single link to a school, but could be to a district or national org). People might also be linked to multiple organizations.

Student = Enrollment>Calendar.SchoolID

Teacher/Administrator = EmploymentAssignment .SchoolID

 

Student = Student Information General > Enrollment

Teacher/Administrator = Census > District Assignment

 

demographics

GUID

0..1

<link to demographics>

   
Back To Top


Campus Customization Summary

The following are Campus implementation specific fields that extend the OneRoster specifications for existing Models.
Campus also added a custom model and a set of fields for grading purposes, see ScoreGroup.
 

ModelMetaDataMultiplicityDataTypeV1.1 ModificationDBUIComments
LineItemext_infiniteCampus_is GradingWindowOpen1Bit (0|1)Not changed in v1.1IF GradingTaskCredit.ActiveMask > 0 THEN 1 ELSE 0Scheduling > Course > Grading Tasks/Standards > Active Mask

Used to determine if Results are currently being accepted for this LineItem.

Note: DB Logic is actually more complicated. See v_oneRosterLineItem for details.

LineItemext_infiniteCampus _isOneTime1Bit (0|1)Not changed in v1.1GradingTask.GradedOnceGrading & Standards > Grading Tasks / Standards BankUsed to determine if LineItem spans all terms across the section versus only one term within that section's placement. See related OneTime gradingPeriods.
LineItemext_infiniteCampus _isStandard1Bit (0|1)Not changed in v1.1IF GradingTask.StandardID IS NOT NULL THEN 1 ELSE 0Grading & Standards > Standards Bank

Used to differentiate between Grading Tasks and Standards.

IF isStandard=0 THEN GradingTask ELSE Standard

Resultext_infiniteCampus _scoreGrade0..1StringNot changed in v1.1GradingScore.ScorePosted Grading Task / Standard Grade: Score

Used to keep track of a score that is typically a Letter Grade or Rubric Grade. Can be used instead of or in addition to Result.Score. See grading document for more details.

Note: Grading Task / Standard grades can be assessed and viewed in many places throughout the product.

Userext_infiniteCampus _grade0..1String

Not used in v1.1.

Added by IMS Global as core User property in v1.1

Max(Enrollment.Grade)Students Only: Student Information > General > EnrollmentsPulls max value across all enrollments in active year, starting with active enrollments, based on today's date.  
Note: alpha grades such as 'KG' will be pulled instead of a numeric grade such as '01', if student has multiple active enrollments. 

 Back To Top


Save

Save

Save

Feedback