WI DPI WISEdata Ed-Fi Docs

/studentSchoolAttendanceEvents

This endpoint 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.

Ed-Fi Tech Docs: https://schema.ed-fi.org/datahandbook-v400/index.html#/StudentSchoolAttendanceEvent593


Data Properties:

#

Property Name

Data Type

Public (Required/ Optional/ Conditional)

Choice (Required/ Optional/ Conditional)

Business Definition

1.0

attendanceEventCategoryDescriptor

string

Required

Required

A code describing the attendance event, for example: Present Unexcused absence Excused absence Tardy.

2.0

eventDate

string

Required

Required

Date for this attendance event

3.0

schoolReference
schoolId

integer

Required

Required

The identifier assigned to a school.

4.0

sessionReference

array

 

 

 

5.0

schoolId

integer

Required

Required

The identifier assigned to a school.

6.0

schoolYear

integer

Required

Required

The identifier for the school year.

7.0

sessionName

string

Required

Required

The identifier for the calendar for the academic session (e.g., 2010/11, 2011 Summer).

8.0

studentReference

 

 

 

 

9.0

studentUniqueId

string

Required

Required

A unique alphanumeric code assigned to a student.

10.0

attendanceEventReason

string

Optional

Optional

The reported reason for a student's absence.

12.0

eventDuration

number

Optional

Optional

The amount of time for the event as recognized by the school: 1 day = 1, or 1/2 day = 0.5

13.0

schoolAttendanceDuration

integer

Optional

Optional

The duration in minutes of the school attendance event.


Descriptors:

Namespace

Code Value

Short Description

Long Description

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:

#

Use Case Title

Use Case Description

What to Submit/retrieve

#

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


JSON Sample:

 

Wisconsin Department of Public Instruction