Versions Compared

Key

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

...

Expand
titleClick here to view all the use cases pertaining to CTE reporting:

#

Use Case Title

Use Case Description

What to Submit/retrieve

1.0

Reporting certified career education programs at a course-level

Certified career education (CE) program reported at course level and program-level.

When a course is identified as part of a CE program, it is not necessary for all students taking the course to be participating in the program. Consequently, DPI expects SIS/LEA to transmit student participation in a program using the /studentsectionAssociation.

These career education programs differ from courses in that they don't have a definitive outcome at the end of a single course. Instead, they represent a combination of courses taken over multiple years, which is why a career education program has a Certificated Program Status.

Therefore, student participation is reported on /studentSectionAssociation, while the student's certificated program status is reported on /studentCTEProgramAssociation.

Starting 24-25 SY, the program type "certified" is updated to "IRC"

Possible ProgramTypeDescriptor code values for reporting IRC data:

  • Certified (Certified Career Education Program) for 23/24 and prior

  • IRC (Industry Recognized Credentials) for 24/25 and after

Possible programName code values for reporting IRC data:

  • IRC - Not State Approved

  • IRC State Approved Business & Industry

  • IRC State Approved WTCS- Associates

  • IRC State Approved WTCS- Embedded Technical Diploma

  • IRC State Approved WTCS- Technical Diploma

For students with Coursework enrollment type, the Certificated Program Status is assigned to the primary enrollment.

Possible CertificatedProgramStatusDescriptor code values:

  • A (Completed without Certificate)

  • B (Continuing Exited)

  • C (Exited)

  • D (Completed with Certificate)

If certified CE program reported at student-level, then POST on /studentsectionAssociation:
_ext":
"wi":
programs":
"programReference":
"educationOrganizationId": 48856,
"programName": "IRC State Approved Business & Industry",
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC"

AND

POST on /studentCTEProgramAssociation
"educationOrganizationReference": {
"programReference":
"educationOrganizationId": 48856,
"programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC",
"programname": "IRC State Approved Business & Industry"
"_EXT":
"WI":
"certificatedProgramStatusDescriptor": "uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#B"

2.0

Reporting certified Work Based Learning career education programs at a non-course-level

Certified career education (CE) program reported at non-course level.

The student is not taking any courses offered as part of career education. However, they are engaged in fieldwork or another qualifying form of study, making them eligible to participate in the career education program.

Starting 24-25 SY, the program type "certified" is updated to "IRC"

Possible ProgramTypeDescriptor code values for reporting IRC data:

  • Certified (Certified Career Education Program) for 23/24 and prior

  • IRC (Industry Recognized Credentials) for 24/25 and after

Possible programName code values for reporting IRC data:

  • IRC - Not State Approved

  • IRC State Approved Business & Industry

  • IRC State Approved WTCS- Associates

  • IRC State Approved WTCS- Embedded Technical Diploma

  • IRC State Approved WTCS- Technical Diploma

For students with Coursework enrollment type, the Certificated Program Status is assigned to the primary enrollment.

Possible CertificatedProgramStatusDescriptor code values:

  • A (Completed without Certificate)

  • B (Continuing Exited)

  • C (Exited)

  • D (Completed with Certificate)

If certified CE program reported at course-level, then POST on /studentCTEProgramAssociation:

"educationOrganizationReference": {
"programReference":
"educationOrganizationId": 48856,
"programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC",
"programname": "IRC State Approved Business & Industry"
"_EXT":
"WI":
"certificatedProgramStatusDescriptor": "uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#B",

3.0

Reporting non-certified career education programs

In order for a career education or career based learning experience to be considered a qualifying work based learning experience for data reporting purposes, specific criteria
must be met. [https://dpi.wi.gov/sites/default/files/imce/wisedata/pdf/Career_Education_Program_Definitions_updates.pdf].

Non-certified career education program can be reported at course level and non-course level.

Starting 24-25 SY, the program type "non-certified" is updated to "WBL".

Possible ProgramTypeDescriptor code value for reporting WBL data:

  • Non Certified (Non Certified Career Education Program) for 23/24 and prior

  • WBL (Work-based Learning) for 24/25 and after

Starting 24-25 SY, the some program names have moved under the WBL program type:

Possible programName code values for reporting WBL data:

  • Entrepreneurial student Business

  • Internship/Local Co-op

  • School-based Enterprise

  • Simulated Worksite

  • Supervised Agricultural Experience

  • State Co-op Ed. Skill Standards - DPI Employability Skills

  • State Co-op Ed. Skill Standards - DPI Occupational

  • State Co-op Ed. Skill Standards - DPI Youth Leadership

  • Youth Apprenticeship

If non-certified CE program reported at course level then POST on /studentsectionAssociation:
_ext":
"wi":
programs":
"programReference":
"educationOrganizationId": 48856,
"programName": "Youth Apprenticeship",
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WBL"

AND

POST on /studentCTEProgramAssociation:
"educationOrganizationReference": {
"programReference":
"educationOrganizationId": 48856,
"programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WBL",
"programname": "Youth Apprenticeship"
------------------------------
If non-certified CE program reported at non-course level then submit /studentCTEProgramAssociation
"educationOrganizationReference": {
"programReference":
"educationOrganizationId": 48856,
"programtpeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WBL",
"programname": "Youth Apprenticeship"

4.0

Reporting dual enrollment programs

Dual enrollment program can be reported at student-level and program-level.

The program type "Dual" remains unchanged.

ProgramTypeDescriptor code value for reporting dual enrollment data:

  • Dual (Dual Enrollment Program)

Possible programName code values for reporting Dual data:

  • College Course with UW System

  • College Course with WI Private College

  • College Course with WI Technical College

  • College Course with WI Tribal College

  • High School Course with UW System

  • High School Course with WI Private College

  • High School Course with WI Technical College

  • High School Course with WI Tribal College

  • Out-of-state Dual Enrollment

If reported at student-level then POST on /studentsectionAssociation:
_ext":
"wi":
programs":
"programReference":
"educationOrganizationId": 48856,
"programName": "College Course with UW System",
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#Dual"

If reported at program-level then submit /studentCTEProgramAssociation
"programReference":
"educationOrganizationId": 48856,
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#Dual",
"programName": "College Course with UW System"

5.0

Sending a student who has multiple certificated statuses under a single IRC program name involves indicating the certificated program status

Regardless of the number of certificates obtained under one program name (e.g., IRC State Approved Business & Industry), if a student completes one and continues to another, they should mark the certificated program status as 'Completed.' The LEA is advised to submit the most accurate status.

For instance:

Semester 1: IRC - CNA certificate - completed
Semester 2: IRC - Welding certificate - not completed

POST on /studentCTEProgramAssociation:
"programReference":
"educationOrganizationId": 48856,
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC",
" programName": IRC State Approved Business & Industry
"_EXT":
"WI":
"certificatedProgramStatusDescriptor":"uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#A

6.0

Sending a student who's enrolled in multiple sections and participating in CE program

If a student exits a section and returns to the same section within the same term, the SIS ends the initial student section and creates a new student section with a new start date. In both instances, the student section should be associated with student program participation.

Example: student left the class and joined back in the same section.

student Section A
Section Reference: A
Begin Date: 08/10/2024
End Date: 10/01/2024
Program Name : Simulated Worksite

student Section B
Section Reference: A
Begin Date: 10/10/2024
End Date:
Program Name : Simulated Worksite

POST on /studentSectionAssociations:

  • /studentsectionAssociation A

"beginDate": "2024-08-10",
"endDate": "2024-10-01",
"_ext":
"wi":
"programs":
"programReference": {
"educationOrganizationId": 48856,
"programName": "Simulated Worksite",
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WBL"

  • /studentSectionAssociation B

"beginDate": "2024-10-10",
"endDate": " ",
"_ext":
"wi":
"programs":
"programReference": {
"educationOrganizationId": 48856,
"programName": "Simulated Worksite",
"programTypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WBL"

7.0

Course-level participation in career education program

Certificated Program participation count for primary enrollment
(2023-24 SY and Prior)

A course is offered as part of career education program. It could be a CTE course or not a CTE course.

Student is participating in that course. At the LEA level, when a course is identified as part of career education program, it is not necessary that all the students taking the course are participating in the program. That is why DPI is expecting LEA and SIS to send student participation in a program and not course association to program

In this use case, the student is participating in the career education program. These career education programs are not like a course where it has an outcome at the end of the course. As this is a program it is combination of courses that would be taken in multiple years. That is why career education program has Program Status.

So student participation is reported on /studentSectionAssociation
Student program status is reported on /StudentCTEProgramAssociation

Via API submit student participation on /StudentSectionAssociation AND Certificated Program Status for each program on /SCTEPA

Example of IRC program:
Via API submit Program reference on /studentsectionAssociation
Program reference
[{
programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC"
Program Name: IRC - Not State Approved
}

AND

Via API submit Certificated Program Status on /studentCTEProgramAssociation for each certified program name.

/studentCTEProgramAssociation

programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#IRC",
programname": IRC
"_EXT": {
"WI": {
"certificatedProgramStatusDescriptor":"uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#b"
}

8.0

Non-course level participation in career education program

Not Certified Work-based learning
(2023-24 SY and Prior)

Student is not taking any courses offered as part of career education. However, he/she is doing some field work or could be any other form of study that qualifies the student to be a participant of the career education program

So student program status is reported on /SCTEPA

See JSON sample below.

9.0

Certified Work-based learning (ex. Youth Apprenticeship)
(2023-24 SY and Prior)

final step certificated program status (Attached to student)

Via API submit /studentCTEProgramAssociation for each certified program name.

/studentCTEProgramAssociation

programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#CE",
programname": Youth Apprenticeship
"_EXT": {
"WI": {
"certificatedProgramStatusDescriptor":"uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#b"
}

10.0

Reporting Certified and Non-certified career education programs
(2023-24 SY and Prior)

Both certified and non-certified career education program can be reported at student-level and program-level.

If reported at student level then submit /studentSectionAssociation
If reported at program level then submit /SCTEPA

11.0

Student took part in multiple certificates under one certified program name.
(2023-24 SY and Prior)

If a student, at any point doesn't matter how many different certificates under one program name (example IRC) they took part in, finished one or continued in another one, then they put 'Completed' as certificated program status. LEA should submit the best status.

Example : Sem 1 - IRC - CNA certificate - completed
Sem 2 - IRC - Welding certificate - not completed

For the example in the usecase, Via API submit certificated program status as 'Completed' on /studentCTEProgramAssociation.

/studentCTEProgramAssociation

programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#CE",
programname": IRC
"_EXT": {
"WI": {
"certificatedProgramStatusDescriptor":"uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#A"
}

Note: Do not submit certificated program status for Certified program on /grades from 21-22SY

12.0

Student took part in multiple certificates under one certified program name.

(2023-24 SY and Prior)

If a student, at any point doesn't matter how many different certificates under one program name (example IRC) they took part in, finished one or continued in another one, then they put 'Completed' as certificated program status. LEA should submit the best status.

Example : Sem 1 - IRC - CNA certificate - completed
Sem 2 - IRC - Welding certificate - not completed

For the example in the usecase, Via API submit certificated program status as 'Completed' on /studentCTEProgramAssociation.

/studentCTEProgramAssociation

programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#CE",
programname": IRC
"_EXT": {
"WI": {
"certificatedProgramStatusDescriptor":"uri://dpi.wi.gov/CertificatedProgramStatusDescriptor#A"
}

Note: Do not submit certificated program status for Certified program on /grades from 21-22SY

13.0

Student has multiple student section associations and participating in program.

(2023-24 SY and Prior)

If a student exit the section and comes back to the same section in the same term, then SIS ends the first student section and creates a new student section with new begin date. On both the student section associate student program participation

Example : For section A student left the class and joined back in the same section.
Student section A
section reference : A
Begin date : 07/10/2021 - 08/01/2021
Programs : High School Course with Private College, FLEX

Student section B
section reference : A
Begin date : 07/10/2021 - 08/01/2021
Programs : High School Course with Private College, FLEX

For the example in the usecase , Via API submit High School Course with Private College, FLEX on both the /studentSectionAssociations

/studentsectionAssociation A
Begin Date : 07/01/2021
End Date : 08/01/2021
Program reference
{
programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#DE"
Program Name: High School Course with Private College
}
{
programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WL"
Program Name: FLEX
}

/studentsectionAssociation B
Begin Date : 08/10/2021
End Date :
Program reference
{
programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#DE"
Program Name: High School Course with Private College
}
{
programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#WL"
Program Name: FLEX
}

14.0

When to report Student non-certified program participation (2023-24 SY and Prior)

Report non-certified career education programs only if the program meets the following criteria:

According to Perkins V, in order for a CBLE to be considered a Work Based Learning, the experience must meet the following criteria:

-Involves sustained interactions with industry or community professionals
-Takes place in real workplace settings as practicable or simulated environments at an educational institution
-Fosters in-depth, firsthand engagement with the tasks required in a given career
-Aligns with curriculum and instruction

Informational only.

15.0

Program Area Type Designation & Reporting (/courses & /sections )

15.1

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"

  • The actual number of days (reported to the one-half day) in attendance during a school term:

  • students who receive at least 66% of district-supervised educational services for the day have accrued a full day (1.0) of actual attendance for that day.

  • students who receive at least 33% and less than 66% of district-supervised educational services for the day have accrued a half day (0.5) of actual attendance for that day.

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,

15.2

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

15.3

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.

Exampe:

  • 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)

15.4

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,

15.5

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,

15.6

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,

15.0

Delete usecases

15.1

Delete /SCTEPA

Student participation records can be deleted if entry was a mistake.

Via API delete /studentCTEProgramAssociation for the program that was submitted by mistake.

15.2

Delete /studentsectionAssociation

Delete the dependent resource before deleting the studentsectionAssociation

If grades resource was submitted for student section then first delete /grade and the delete studentsectionAssociation

16.0

Career education data quality checks

16.1

/SCTEPA not reported for student participating in career education program

Student program participation is reported on /studentSection but /SCTEPA is not submitted

In this case DPI will throw a validation error saying student reported as participating in career education program but actual student participation status is not reported on /SCTEPA.

A student could be taking multiple sections providing career education program. The group of courses support the program status. The actual student participation in the program with the status is reported on /SCTEPA

17.0

CTE Concentrators

17.1

Report a student who is a CTE concentrator

If student is identified as qualifying for CTE concentrator then submit /SCTEPA
For a student who is CTE concentrator also submit the Program Area participation and career pathway

Student is always a concentrator in a specific pathway. LEA make sure to identify the career pathway of the student.

More than one Program Area can be reported for the CTE concentrators

Note : Please confirm the latest CTE concentrator definition with Jessie Sloan 

Via API submit /SCTEPA

{
"educationOrganizationReference": {
"educationOrganizationId": 7525
},
"programReference": {
"educationOrganizationId": 48856,
"programtypeDescriptor": "uri://dpi.wi.gov/ProgramTypeDescriptor#CTE",
"programname": "Career and Technical Education"
},
"studentReference": {
"studentUniqueId": "8660232105"
},
"beginDate": "2020-07-01",
"endDate": "2021-06-05",
"ctePrograms": [{
"careerPathwayDescriptor": "uri://dpi.wi.gov/CareerPathwayDescriptor#2",
"cipCode": "23.01"
}],
"_EXT": {
"WI": {

"cteConcentrationCteProgramAreas": [{
"cteProgramAreaDescriptor": "uri://dpi.wi.gov/CteProgramAreaDescriptor#H"
}]
}
}
}

17.2

Submit single Parent status for concentrator

Single Parent status is required for CTE data reporting and therefore is required for all 11th and 12th grade students.

 

17.3

CTE Participant

LEA does not report the CTE Participant. DPI identifies the participant based on the Roster data of the student.

A student is identified as a CTE participant in a district if his/her grade level is 9-12, taking at least one CTE course for which the attempt status is sufficient, and passed the course.

This calculation looks for Grade level of students between 9-12
Has at least one /studentSectionAssociation resource for the CTE course. That means the student is sitting in at least one CTE course offered by the LEA.
On /studentSectionAssociation attempt status on /studentSectionAssociation is Sufficient
On /grade resource performance-based conversion type is PASS

 

18.0

CTE Override

18.1

Submit courses WI flagged as CTE but in the field it is not necessarily offered as a CTE course.

DPI is spinning the courses with CTE flag to have new Roster code with non CTE flag. LEA needs to use the new Roster code.
Example is listed here:
CTE Override example

 

18.2

Submit courses not flagged as CTE in DPI course download but LEA offering as CTE.

The local course title matches with non CTE DPI course but CTE licensed teachers are teaching the course so LEA is offering the course as CTE. In this case LEA still has to pick a CTE course that matches the description of the local course offered. We are only spinning the CTE courses to have non CTE identification code not the other way around.

 

18.3

Vendors who are pulling courses from API

Vendors pulling courses from API need to make sure that new Roster courses code are populated in their SIS with the new identification code

 

...