How We Connect
Infinite Campus data is pulled nightly via a secured Open Database Connection (ODBC). Traffic is encrypted in transit and at rest and a successful connection requires an SSH server or VPN. For more information about ODBC and VPN, please review our Connecting your SIS to Schoolzilla via ODBC overview.
For more information about getting connected. Please review our setup article here.
Mappings Overview
If a field can be further configured by a Schoolzilla admin or relates to metric configurations, then there will be a link to the relevant part of Data Configuration Settings below.
Students
Student demographic data is sourced from the Person, Identity, Enrollment, LEP, MilitaryConnections, POSEligibility, and FosterCare tables. The documentation below represents the default mappings in place. Some of these mappings can be customized and are typically updated during initial setup. Customizable fields have an asterisk(*).
Key Field(s) | Mapping(s) |
---|---|
System Student ID |
Values are populated using the StudentNumber field in the Person table. |
Full Name |
Values are populated using the LastName and FirstName fields in the Identity table. |
Values are populated using the Grade field in the Enrollment table. Code values are translated to descriptors. The enrollment record used must have an EntryDate before or equal to today's** date. |
|
Values are populated using the programStatus field from the LEP table. |
|
Values are populated using the Eligibility field in the POSEligibility table. Codes in this field are translated using the Name field in the CampusDictionary table. The POSEligibility record used must have an StartDate before or equal to today's** date and an EndDate after or equal to today's date**. |
|
Foster Care Status* |
Values are equal to "In Foster Care" if the student has a record in the FosterCare table with an EndDate greater than or equal to today's** date. All other students are considered "Not in Foster Care". |
Values are populated using the Gender field in the Identity table. |
|
Grade Level at the Time |
Values are populated using the Grade field in the Enrollment table. Code values are translated to descriptors. The enrollment record used |
Homeless Status* |
Values are equal to "Homeless" if the value in the Homeless field from the Enrollment table is not "0", "N", "00", or NULL. All other students are considered "Not Homeless". |
Is SPED* |
Values are equal to "In Special Education" if the value in the disability1 field in the Enrollment table is not "00" or missing. All other students are considered "Not in Special Education". |
Migrant Status* |
Values are equal to "Migrant" if the value in the Migrant field from the Enrollment table is "1" or "Y". If the value is "0", "N", or NULL, then a student is considered "Not Migrant". |
Military Family Status* |
Values are equal to "In Military Family" if the student has a record in the MilitaryConnections table. All other students are considered "Not in Military Family". |
Values are populated using the RaceEthnicityFed field in the Identity table. The numbers in the RaceEthnicityFed field are translated to descriptors. |
|
Values are populated using the disability1 field in the Enrollment table. Codes in this field are translated using the Name field in the CampusDictionary table. The enrollment record used must have an StartDate before or equal to today's** date and an EndDate after or equal to today's date**. |
**During the summer months, the "Active Enrollment Date" is used as today's date. Active Enrollment Date is determined on a school-by-school basis. For each school, we determine the date based on the following logic:
- If today's date is in session → today's date
- If today's date is less than 14 days before the start of the upcoming school year → First day of school (Note: the 14 day roster rollover window can be configured.)
- Otherwise → Last day of previous school year
Staff
A comprehensive list of teacher users is sourced from the Person, Identity, and Contact tables. Only staff with non-null values in the StaffNumber field in the Person table will be loaded.
Key Field(s) | Mapping(s) |
---|---|
Full Name |
Values are populated using the LastName and FirstName fields in the Identity table. |
|
Values are populated using the Email field in the Contact table. |
Calendars
School calendar data is sourced from the Calendar, Day and Schools tables.
Key Field(s) | Mapping(s) |
---|---|
School Year |
Calendars are linked to school years using the EndYear field in the Calendar table where the date falls between the StartDate and EndDate for the calendar. |
In Session |
Days are considered "In Session" if the Attendance field in the Day table is greater than or equal to 1 for the school and day. |
School Enrollment & Retention
Student school enrollment history is populated using the Enrollment table. Only enrollments that can be linked to school years (see linking logic below) will be loaded.
Key Field(s) | Mapping(s) |
---|---|
School Year |
Enrollments are linked to school years using the EndYear field in the Calendar table. Enrollments are linked to calendars using the CalendarID and the enrollment/calendar start and end dates. Both conditions below must be met:
|
Entry Date |
Values are populated using the StartDate in the Enrollment table. |
Values are populated using the EndDate field in the Enrollment table. If the EndDate is not populated, the last day of the school year is used. |
|
Values are populated using the EndStatus field in the Enrollment table. |
|
No Show |
Enrollments are considered "No Show" records if the NoShow field in the Enrollment table is 1. |
School |
Enrollments are linked to schools using the SchoolID from the linked calendar (see school year linking above) and the DistrictID. |
Student Rosters (Class & Teacher Associations)
Students are rostered to classes and teachers using the Roster, Trial, Term, and SectionStaffHistory tables.
Key Field(s) | Mapping(s) |
---|---|
School Year |
Class enrollments are linked to school years using the endYear field in the Calendar table. The appropriate calendar is identified using the TermID from the SectionPlacement table for the SectionID and TrialID of the roster record. Terms are linked to Calendars through the TermSchedule and ScheduleStructure tables. |
Class Entry Date |
Values are populated using the StartDate in the Roster table. If the StartDate is not populated, the EndDate of the relevant term is used. |
Class Exit Date |
Values are populated using the EndDate in the Roster table. If the EndDate is not populated, the EndDate of the relevant term is used. |
Staff |
Class enrollments are linked to staff using the SectionStaffHistory table. A staff member must have a non-null StaffNumber in the Person table to be linked to a course. |
Attendance
Infinite Campus attendance data is stored at the class period level in the AttendanceCode table. This table only includes records when an attendance event occurs. If a student was enrolled on an in-session date that does not have a record in this table, we assume the student was present.
Key Field(s) | Mapping(s) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Attendance Value |
Daily attendance can be calculated in 4 different ways based on individual period attendance:
|
||||||||
Absence Code |
No day-level attendance codes are tracked and available in Infinite Campus. |
||||||||
School |
Attendance is linked to schools based on the Calendar associated with the attendance record. |
Behavior
Behavior data is loaded from the BehaviorIncident and BehaviorResolution tables. By default, Schoolzilla only loads behavior responses (e.g. suspensions) for the Offender role. Please contact support to add additional role(s).
Key Field(s) | Mapping(s) |
---|---|
School Year |
Behavior incidents are linked to school years using the Calendar associated with the incident based on the CalendarId. |
School |
Behavior incidents are linked to schools using the Calendar associated with the incident based on the CalendarId. |
Incident Date |
Values are populated using the TimeStamp field in the BehaviorIncident table. |
Incident Time of Day |
Values are populated using the TimeStamp field in the BehaviorIncident table. |
Values are populated using the Name field in the BehaviorType table. |
|
Values are populated using the Location field in the BehaviorIncident table. Location codes are translated into descriptors using the CampusAttribute table. |
|
Values are populated using the Name field in the BehaviorResType table. If no linked behavior resolution type, the Name field in the BehaviorResolution table is used. |
GPA
GPAs are sourced from the v_CumGPAFull, v_RollingCumGPA, and v_GpaTermCalc views.
Key Field(s) | Mapping(s) |
---|---|
GPA Calculation |
Calculation type and name is determined based on the source of the GPA value (see below). GPA Types supported:
GPA Calculations:
|
GPA Value |
Cumulative GPA Values are populated using the cumGpaBasic and cumGpaUnweighted fields in the v_CumGPAFull view. Rolling Cumulative GPA Values are populated using the gpa, unweightedGPA, gpaBonus, and unweightedGPABonus fields in the v_RollingCumGPA view. Rolling Term GPA Values are populated using the gpa and gpaBonus fields in the v_GpaTermCalc view. Term GPA Values are populated using the gpa, unweightedGPA, gpaBonus and unweightedGPABonus fields in the v_GpaTermCalc view. |
By default,
- Cumulative GPA will use the cumGpaUnweighted field in the v_CumGPAFull view to populate an unweighted cumulative GPA.
- Term GPA will use the unweightedGPA field in the v_GpaTermCalc view to populate an unweighted term GPA.
Please contact support to configure which GPA calculations are used on your dashboards!
Grades
Grades data is sourced from the GradingScore table.
Key Field(s) | Mapping(s) |
---|---|
School Year |
Grades are linked to school years using the endYear for the relevant Calendar (determined using the CalendarID). |
School |
Grades are linked to schools using the Calendar record for the school year (see above). |
Values are populated using the Name field in the Department table. |
|
Class Period |
Values are populated using the Name field in the Period table. Classes are linked to periods through the SectionPlacement table. |
Values are populated using the Name field in the ScoreListItem table. If the value in the Score column in the GradingScore table does not match any name in the ScoreListItem table, the Score value is used. |
|
Grades are linked to grading periods using the TaskID column in the GradingScore table. Values are populated using the Name field in the GradingTask table. |
|
Grades are linked to terms using the TermID column in the GradingScore table. Values are populated using the first non-numeric character of the TermSchedule name (e.g. "S" for "Semester") and the Seq field in the Term table. |
|
Grade Type |
Values are populated using the Name field in the ScoreGroup table. |
Grade Status |
Grades are considered "Final" if they are loaded from the Score column in the GradingScore table. Grades are considered "In Progress" if they are loaded from the ProgressScore field in the GradingScore table. |
* The documentation above represents the default mappings in place. Some of these mappings can be customized and are typically updated during initial setup. Customizable fields have an asterisk (*).
Known Limitations
Primary Enrollments Only - Infinite Campus supports primary and secondary school enrollments. Schoolzilla is only able to load the primary school enrollment for a given student.
Schoolzilla Dashboards can only calculate attendance data using one attendance calculation method - Users of Infinite Campus are able to choose between 4 different options for looking at daily attendance: Whole/Half Day Attendance, Exact, Exact with Percent Enrolled, and CA-Specific calculation. Users can select these options ad hoc when creating reports. Schoolzilla requires Infinite Campus users to select one calculation method for calculating daily attendance values. This method must be the same across all schools.
No Daily Absence Rate - Infinite Campus does not support attendance codes assigned to the day (they are specific to courses). Schoolzilla's absence rate metric uses a day-level attendance code, so this metric is not currently supported for Infinite Campus customers.
Schoolzilla does not support a behavior status. All data in BehaviorIncident and BehaviorResponse tables will be loaded regardless of status.
Frequent Data Quality Issues
Staff missing StaffNumber in Person Table - Infinite Campus does not require this id number to be populated for staff, but it is the unique identifier for staff within Schoolzilla. It is, therefore, required for teacher accounts to be created and for teachers to show up with students on Our Students.
Frequently Asked Questions
None at this time.