Skip to end of metadata
Go to start of metadata

Ed-Fi Request for Comment 24: Core Student API
Products: Ed-Fi Data Standard v3.2b, Ed-Fi Certifications
Obsoleted By: --
Status: Active

Ed-Fi Alliance
April 20, 2020



This RFC proposes a set of changes to the data exchange models covered in ED-FI RFC 16 - CORE STUDENT DATA API. The proposed changes are the result of ongoing field work operationalizing the data exchange structures in RFC 16, and seek to expand the data elements or make other changes necessary to support use cases around the exchange of data for domains common to student information systems in K–12 education.

This RFC also follows and obsoletes ED-FI RFC 20 - CORE STUDENT API. Most changes have been carried over to this release, but there are some additions and the work around grade point averages has been revised in response to more community input.

The changes proposed in this RFC are intended to be non-breaking to most API clients. "Non-breaking" in this context generally means that data model changes are additive and optional, datatypes are generalized or field lengths are expanded. However, any change to a data model is potentially breaking given the specific API client behavior, so all API users are cautioned to review the changes carefully.

In order to help make the RFC non-breaking, the RFC proposes deprecation of data model elements. Deprecation as a concept is new to Ed-Fi specifications. Deprecation communicates that a data element or other API behavior is intended for removal in a future release, and likely in the next major release. Deprecation is therefore a recommendation to avoid use of certain data fields or features. Deprecation may be accompanied by information listing alternative or preferred options.

Major Changes

Major changes proposed are listed below, as changes to the underlying Ed-Fi Unified Data Model. A list of all proposed changes can be found below this section.

Student Programs (DATASTD-1318, DATASTD-1319, DATASTD-1330, DATASTD-1187, DATASTD-1201, DATASTD-1314, DATASTD-1288DATASTD-1224)

Under Data Standard v3.1, data on student program participation could be found in two places, StudentProgramAssociation and ProgramParticipation (attached on Student in v2.x and moved to StudentEducationOrganizationAssociation in v3.x). As a result, capture of program data has varied across implementations. Many implementations used ProgramParticipation to record a student's eligibility for a program while StudentProgramAssociation denoted active participation. Both to simplify the model and accommodate the varying use cases, ProgramParticipation is marked for deprecation and new elements around participation and status have been added to the GeneralStudentProgramAssociation and subclasses.

Specifically, StudentProgramAssociation entities now include an optional common ParticipationStatus with ParticipationStatusDescriptor, StatusBeginDate, StatusEndDate, and DesignatedBy elements. In addition, the BeginDate documentation on StudentProgramAssociation has been updated to "The earliest date the student is involved with the program. Typically, this is the date the student becomes eligible for the program." to allow for varying student participation statuses.

The other major changes to the Programs domain revolve around services. For Data Standard v3.0, additional StudentProgramAssociation subclasses were created to accommodate federal reporting needs. Program-specific Service descriptors were created for most, but not all, of the new StudentProgramAssociation subclasses with the original Service descriptor remaining on the generic StudentProgramAssociation.

Program-specific Service descriptors have been created for the Title I Part A and Career Technical Education (CTE) program associations to fill this gap. The Title I Part A Service default descriptor values are aligned with CEDS v7.1 codes. The CTE Service common has been merged with the now deprecated CTEProgram common to include CIPCode and the CareerPathways descriptor values under the CTEProgramService descriptor. The SpecialEducationProgramService common now includes an optional reference to staff via the ServiceProvider elements. While these elements already exist on the StudentSpecialEducationProgramAssociation, there was not previously a way to associate staff directly with a special education student's individual services.

To allow for state reporting requirements around the time a student is prescribed for an English Language Learners (ELL) program, a Dosage element has been included in the StudentLanguageInstructionProgramAssociation.

Lastly, due to the highly program-specific nature of Service descriptor values, the Program Service descriptor is marked as deprecated.

Discipline Domain (DATASTD-1317, DATASTD-1218, DATASTD-1352, DATASTD-1353)

There is a growing desire in the community to accommodate greater detail in discipline reporting, including the ability to track external participants (i.e., not Student or Staff) in discipline incidents and to allow reporting of Staff participation beyond the "reporter" designation.

For external participants, a new, optional common collection DisciplineIncidentExternalParticipant has been added to DisciplineIncident with elements FirstName, LastSurname, and a more generic DisciplineIncidentParticipationCode descriptor based on the existing StudentDisciplineIncidentAssociation StudentParticipationCode descriptor.

To address the need for greater detail around Staff involvement with discipline incidents, a new StaffDisciplineIncidentAssociation entity has been created with the Staff and DisciplineIncident references and the new DisciplineIncidentParticipationCode descriptor. This is intended to replace the existing Staff reference on DisciplineIncident which is marked for deprecation.

One other proposed change to the discipline model is to mark the ReceivedEducationServicesDuringExpulsion flag on DisciplineAction for deprecation. There is an existing default descriptor value, "Expulsion with Services" in the Discipline descriptor which should be used instead.

Grade Point Average (DATASTD-1113, DATASTD-1337, DATASTD-1423)

The previous model for capturing a student's grade point average (GPA) was limited in that it made no distinction between different types of GPAs commonly stored in a SIS (e.g., weighted, unweighted). Research on existing Ed-Fi certified student information system vendors revealed that a majority of these systems calculate and record different types of GPAs per student. To fix this gap in the model, a new, optional, common collection GradePointAverage is added to StudentAcademicRecord and ReportCard that includes GradePointAverageValue, GradePointAverageType descriptor, and IsCumulative boolean elements. Existing grade point elements are marked for deprecation. Slight changes were also made to improve definitions.

Note that this model represents an evolution from the model proposed in RFC 20.

Student Attendance (DATASTD-1307, DATASTD-1311, DATASTD-1347)

Federal and state reporting requirements have prompted a need to track student attendance, particularly for certain programs, at a more granular level. Based on the existing InterventionDuration element on StudentInterventionAttendanceEvent, similar duration elements have been added to StudentSchoolAttendanceEvent, StudentSectionAttendanceEvent, and StudentProgramAttendanceEvent. Based on feedback received from student information systems, new time elements, ArrivalTime and DepartureTime have been included in the StudentSectionAttendanceEvent and StudentSchoolAttendanceEvent domain entities.

These provide the three most common options for reporting an attendance event duration:

  1. The existing EventDuration as a portion of the entire school day (where 1 = a day, 0.5 = half day, etc.)
  2. The new Duration elements in minutes
  3. The new ArrivalTime and DepartureTime elements

Based on consulting current Ed-Fi certified student information system vendors, reporting the duration in minutes or via arrival and departure times better aligns with how many systems are collecting attendance data and would simplify the business logic required for EventDuration.

To improve flexibility on how expected attendance is reported, the OfficialAttendancePeriod flag has been added to Section to allow implementations to either denote official attendance periods by Class Period (as in previous versions of the model) or by Section.

Student Enrollment Indicators (DATASTD-1257, DATASTD-795, DATASTD-1280)

Based on a review of multiple state implementations that have made v3.x extensions publicly available, two additions around student membership, or enrollment, have been proposed.

The first is to add a full-time equivalency element to StudentSchoolAssociation. The new FullTimeEquivalency element will follow the existing pattern for FullTimeEquivalency on StaffEducationOrganizationEmploymentAssociation and be a decimal where 1 denotes a full-time student, 0.5 denotes a half-time student, and so forth.

The second is to allow for the use case where a student has exited or withdrawn from a school prior to the end of the term, but has met the requirements to consider the term "complete" based on the implementations definition. For example, a student may have an ExitWithdrawType descriptor value "Dropout" but still have completed all required coursework for the term. Following the extension model from state implementations, a new TermCompletion flag has been added to StudentSchoolAssociation.

Lastly, an optional array for alternative graduation plans on the StudentSchoolAssociation now allows for multiple, secondary graduation plans to be attached to a student's enrollment record.

Standards-Based Grading (DATASTD-1146)

There have been multiple requests to allow for grading based on learning standards. Many schools track a student's progress in the standards-based curriculum against the learning standards directly. This RFC proposes to adopt a model in use by the Wyoming Department of Education to meet this need. It satisfies the need for both aggregate grades per grading period and section as well as granular details of grades per learning standard covered in the curriculum for that grading period and section.

Specifically, the Grade domain entity now includes an optional LearningStandardGrade common array with elements to report details around the grade earned for a learning standard.

Bell Schedules and Instructional Time (DATASTD-1344, DATASTD-1046, DATASTD-1237)

In the Data Standard v3.0 model, bell schedules and calendars were both expanded and designed to differentiate between how days and time are reported. Calendars are intended to hold information around instructional days and bell schedules are intended to hold information around instructional time.

State reporting around these two areas is almost universally required and yet definitions differ from state to state. To reduce the business logic around calculating total instructional time, three new, optional elements have been added to Bell Schedule: StartTime, EndTime, and TotalInstructionalMinutes. The combination of these three should allow for reporting of total instructional time in minutes as well as total time (instructional or otherwise) for a school day.

Capturing Concept of Residency (DATASTD-1418)

There has been a need to capture the concept of residency, generally around school district of residency but also on occasion school of residency. The notion is generally to capture if a student resides within certain administrative boundaries for these entities. This release clarifies that this should be captured through StudentEducationOrganizationResponsibilityAssociation by adding a default descriptor to the options and through a slightly modified entity definition.

Course Transcript Domain Expansion (DATASTD-1390, DATASTD-1426, DATASTD-1424)

This release incorporates a number of expansions to the student transcript representation that came out of the Course Transcript Special Interest Group. Principal among these is the ability to capture "credit categories" that are often used to sum up transcript credits for the purpose of determining progress towards various graduation plans or other important benchmarks (e.g., college entrance requirements). This is a flexible tagging system that could be used for generalized academic subject counts (e.g., "high school math") or to tag and sum credits such as dual-credit or AP coursework. A parallel element was introduced on GraduationPlan.

There were also some smaller changes, such as the ability to capture multiple course identification codes and URLs to course catalogs. Please see the linked tickets for complete details.

Deprecated Elements

The following is a full list of all proposed deprecated elements.

Deprecated ItemTypeReason & Proposed Alternative(s)


CommonUsers of this element are advised to use CTEProgramService instead. CTEProgram and Service elements have been combined in the new CTEProgramService.
StudentEducationOrganizationAssociation.ProgramParticipationCommonUsers of this element are advised to use StudentProgramAssociation instead.
StudentTitleIPartAProgramAssociation.ServiceCommonUsers of this element are advised to use TitleIPartAProgramService instead. Title I Part A program-specific descriptor values have been included to replace the generic Service descriptor values.
DisciplineAction.ReceivedEducationServicesDuringExpulsionBooleanUsers of this element are advised to use the Discipline descriptor value "Expulsion with Services" instead.
DisciplineIncident.StaffReferenceUsers of this element are advised to use StaffDisciplineIncidentAssociation instead. The new association allows for additional staff participation designations beyond reporter.
Program.ServiceDescriptorThis element is rarely used and default descriptor values do not include program-specific services as defined on the GeneralStudentProgramAssociation sub-classes.


DecimalUsers of this element are advised to use GradePointAverage instead, which supports capture of multiple (e.g., weighted, unweighted) GPAs.


DecimalUsers of this element are advised to use GradePointAverage instead, which supports capture of multiple (e.g., weighted, unweighted) GPAs.


DecimalThis element is rarely used.

All Individual Changes

Key Summary Created Reporter

This list is also available in this Ed-Fi Tracker report.