Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This endpoint can be collected regardless of enrollment type and denotes the recording of a student's attendance status for a school day. SIS/LEAs should exclusively report negative attendance for students marked as "Excused Absence", "Excused Absence", etc. Negative attendance refers to the practice where students are assumed to be present, and only those who are absent or tardy are marked as such in attendance records.

...

Expand
titleClick here to view all the descriptors for /studentSchoolAttendanceEvents endpoint:

Namespace

Code Value

Short Description

Long Description

uri://ed-fi.org/AttendanceEventCategoryDescriptor

Excused Absence

Excused Absence

Excused Absence

Unexcused Absence

Unexcused Absence

Unexcused Absence

In Attendance

In Attendance

In Attendance

Tardy

Tardy

Tardy

Partial

Partial

Partial

Early departure

Early departure

Early departure

...

Use Cases:

Expand
titleClick here to view all the use cases pertaining to the /studentSchoolAttendanceEvents endpoint:

#

Use Case Title

Use Case Description

What to Submit/retrieve

1.0

Sending a student absent for partial or a full-school day

The studentSchoolAttendanceEvent endpoint represents the recording of attendance taken by a teacher for a section.

SIS/LEAs should only report negative attendance for students marked "Excused Absence", "Excused Absence", etc. A separate studentSchoolAttendanceEvent record is submitted for each student, each school of enrollment, and each date on which the student was absent for all or part of the day.

Assumptions:

  • The school has a single calendar. If a school has multiple calendars, the calendar which applies to the student should be used.

  • The student does not have an individual calendar. If a student has an individual calendar, the calendar as defined by StudentSchoolAssociation → Calendar reference should be used.

  • The student is enrolled in the school for the entire session and school year.

  • The school's sessions do not overlap, and there's a session with termDescriptor as "Annual"

Note: "positive" attendance is not captured, and only the exceptions to being in attendance are captured ("Excused Absence", "Excused Absence", etc.)

POST on /studentSchoolAttendanceEvent:
"schoolReference":
"schoolId": 7525
"sessionReference":
"schoolId": 7525,
"schoolYear": 2025,
"sessionName": "2025 Cal",
"studentReference": {
"studentUniqueId": "7013013246",
"attendanceEventCategoryDescriptor": "uri://ed-fi.org/AttendanceEventCategoryDescriptor#Excused Absence",
"eventDate": "2025-08-23",

POST on /studentSchoolAssociation:
"schoolReference":
"schoolId": 7525
"studentReference":
"studentUniqueId": "7013013246"
"entryDate": "2024-08-05",
......
"_EXT":
"WI":
"actualDaysAttendance": 5,
"possibleDaysAttendance": 151,
"residencyPeriods":
"residentLocalEducationAgencyReference":
"localEducationAgencyId": 7533
},
"beginDate": "2023-09-12",
"residencyStatusDescriptor": "uri://dpi.wi.gov/ResidencyStatusDescriptor#R",
"endDate": " "
"receivingServices":
"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#P"

"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#M-3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#A"

POST /session:
"schoolReference":
"schoolId": 7525
"schoolYearTypeReference":
"schoolYear": 2025
"termDescriptor": "uri://dpi.wi.gov/TermDescriptor#A",
"sessionName": "2025 Cal",
"beginDate": "2024-08-05",
"endDate": "2025-06-30",
"totalInstructionalDays": 151,

2.0

Modifying student absence dates for a previously submitted record

At times, the LEA may not mark absences as excused until the approval for homebound status is granted. This delay impacts the student's attendance record, but once the approval is received, the LEA can retroactively designate the absences as excused.

To update a student's attendance, follow these two steps: 1) Delete the inaccurate record, and 2) Create a new record with the correct date.

DELETE on /studentSchoolAttendanceEvent using the Ed-Fi ID (GUID).

THEN

POST on /studentSchoolAttendanceEvent

3.0

Sending attendance for a student who has multiple enrollments with in the same LEA but only one enrollment cover the count date.

Test case for public school only

If a student has multiple enrollment records within the same district, and attendance before and after the count date in the district, the countDateReceivingServiceDescriptor should be reported as Present or Absent.

Example:

  • SSA 1 - School A: Present before the count date, but SSA doesn’t cover count date.

  • SSA 2 - School B: Absent all dates, but SSA cover count date.

  • SSA 3 - School C: Present after the count date, but SSA doesn’t cover count date.

In this specific case, if the student is reported as ‘Not Receiving Services’, a warning will be displayed in WISEdata Portal so that LEAs can review this student and verify the data is accurate in the SIS.

LEAs should be able to override the student's countDateReceivingServiceDescriptor to be 'A - Absent'.

POST on /studentSchoolAssociation: -- School A and student was present at least before the count date
"schoolReference":
"schoolId": 7525
"entryDate": "2024-08-05",
"exitWithdrawDate": "2024-09-16",
"exitWithdrawTypeDescriptor": "uri://dpi.wi.gov/exitWithdrawTypeDescriptor#C",
......
"_EXT":
"WI":
"actualDaysAttendance": 10,
"possibleDaysAttendance": 151,
"residencyPeriods":
......
"receivingServices": this enrollment ended before the TFS count date (TFS is 8/20/2025)

POST on /studentSchoolAssociation: -- School B and student was absent all days including the count date
"schoolReference":
"schoolId": 7524
"entryDate": "2024-09-17",
"exitWithdrawDate": "2024-10-11",
"exitWithdrawTypeDescriptor": "uri://dpi.wi.gov/exitWithdrawTypeDescriptor#C",
"primarySchool": "true",
......
"_EXT":
"WI":
"actualDaysAttendance": 40,
"possibleDaysAttendance": 151,
"residencyPeriods":
......
"enrollmentTypeDescriptor": "uri://dpi.wi.gov/EnrollmentTypeDescriptor#P",
"receivingServices":
"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#M-1FM",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#N"

POST on /studentSchoolAssociation: -- School C and student was present at least after the count date
"schoolReference":
"schoolId": 7523
"entryDate": "2024-10-14",
"exitWithdrawDate": " ",
......
"_EXT":
"WI":
"actualDaysAttendance": 60,
"possibleDaysAttendance": 151,
"residencyPeriods":
......
"receivingServices": this enrollment started after the TFS count date (TFS is 8/20/2025)

4.0

Sending a attendance for a student who has a 'Membership' enrollment type

Test case for public school only

Students who are outside of the age requirement that must be met for grade levels are reported with a 'membership' enrollment type. These students will have one of the following residency statuses: R-OUTSIDEAGE, or NR-OUTSIDEAGE.

  • Outside age eligibility students are not submitted to DPI for accountability purposes, but are required for membership. Therefore, an enrollment record should be submitted as Membership enrollment type.

  • The attending district submits an enrollment record for the student.

POST on /studentSchoolAttendanceEvent:
"schoolReference":
"schoolId": 7525
"sessionReference":
"schoolId": 7525,
"schoolYear": 2025,
"sessionName": "2025 Fall Semester",
"studentReference": {
"studentUniqueId": "7013013246",
"attendanceEventCategoryDescriptor": "uri://ed-fi.org/AttendanceEventCategoryDescriptor#Excused Absence",
"eventDate": "2025-08-23",

POST on /studentSchoolAssociation:
"schoolReference":
"schoolId": 7525
"studentReference":
"studentUniqueId": "7013013246"
"entryDate": "2024-08-05",
"primarySchool": "true",
......
"_EXT":
"WI":
"actualDaysAttendance": 5,
"possibleDaysAttendance": 151,
"enrollmentTypeDescriptor": "uri://dpi.wi.gov/EnrollmentTypeDescriptor#M"
"residencyPeriods":
"residentLocalEducationAgencyReference":
"localEducationAgencyId": 7533
"beginDate": "2023-09-12",
"residencyStatusDescriptor": "uri://dpi.wi.gov/ResidencyStatusDescriptor#R-OUTSIDEAGE",
"endDate": " "
"receivingServices":
"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#P"
"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#M-3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#A"

POST /session:
"schoolReference":
"schoolId": 7525
"schoolYearTypeReference":
"schoolYear": 2025
"termDescriptor": "uri://dpi.wi.gov/TermDescriptor#A",
"sessionName": "School Calendar",
"beginDate": "2024-08-05",
"endDate": "2025-06-30",
"totalInstructionalDays": 151,

5.0

Sending attendance for a student enrolled part-time in a public school with a 'coursework' enrollment type.

Test case for public school only

Students who are primarily homeschooled or enrolled in a private school but taking classes in a public school should have an attendance event. These students will have one of the following residency statuses: R-HOME, R-PRIVATE, and NR-HOME.

POST on /studentSchoolAttendanceEvent:
"schoolReference":
"schoolId": 7525
"sessionReference":
"schoolId": 7525,
"schoolYear": 2025,
"sessionName": "2025 Fall Semester",
"studentReference": {
"studentUniqueId": "7013013246",
"attendanceEventCategoryDescriptor": "uri://ed-fi.org/AttendanceEventCategoryDescriptor#Unexcused Absence",
"eventDate": "2025-08-23",

POST on /studentSchoolAssociation:
"schoolReference":
"schoolId": 7525
"studentReference":
"studentUniqueId": "7013013246"
"entryDate": "2024-08-05",
"primarySchool": "true",
......
"_EXT":
"WI":
"actualDaysAttendance": 5,
"possibleDaysAttendance": 151,
"enrollmentTypeDescriptor": "uri://dpi.wi.gov/EnrollmentTypeDescriptor#C"
"residencyPeriods":
"residentLocalEducationAgencyReference":
"localEducationAgencyId": 7533
},
"beginDate": "2023-09-12",
"residencyStatusDescriptor": "uri://dpi.wi.gov/ResidencyStatusDescriptor#R-HOME",
"endDate": " "
"receivingServices":
"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#P"

"countDateNameDescriptor": "uri://dpi.wi.gov/CountDateNameDescriptor#M-3FS",
"countDateReceivingServiceDescriptor": "uri://dpi.wi.gov/CountDateReceivingServiceDescriptor#A"

POST /session:
"schoolReference":
"schoolId": 7525
"schoolYearTypeReference":
"schoolYear": 2025
"termDescriptor": "uri://dpi.wi.gov/TermDescriptor#A",
"sessionName": "School Calendar",
"beginDate": "2024-08-05",
"endDate": "2025-06-30",
"totalInstructionalDays": 151,

6.0

Sending a student enrollment record for a student who’s attending a private choice school, and receiving special education services in a public school district

In this specific case, the Choice school submits a primary (P) enrollment, and the Public school submits a Parent Placed Private (PPP) enrollment.

  • The Choice school is expected to report the attendance data.

  • The public school is NOT expected to report attendance data.

Informational

7.0

Sending a student enrollment record for a student who’s taking coursework in multiple public schools

  • The primary school district submits an primary (P) enrollment record along with attendance data.

  • The non-primary school district submits a Coursework (C) enrollment record and should NOT send attendance data.

Informational

...