Implement state chronic absenteeism reporting by aggregating StudentSchoolAttendanceEvents in the Ed-Fi ODS and writing results to a custom aggregate endpoint
Query GET /ed-fi/studentSchoolAttendanceEvents with filters for the target school year and school; page through all results and group by studentUniqueId.
For each student, count total instructional days (Membership Days) from StudentSchoolAssociation session data and excused/unexcused absence days from attendance events where the category is not 'In Attendance'.
Calculate the absenteeism rate as (absence days / membership days) * 100; flag students at or above 10% as chronically absent per federal definition.
If the SEA uses an Ed-Fi extension for chronic absenteeism indicators, POST or PUT results to the extension endpoint (e.g., /ed-fi/studentAbsenteeismData) with the calculated rate and flag.
Schedule the aggregation job to run nightly after SIS batch attendance uploads complete; include a data freshness check to confirm today's attendance events are present before running calculations.
Produce a summary report by school and grade level for the SEA state reporting portal, cross-referencing with demographic data from StudentEducationOrganizationAssociation.
Known gotchas
Membership Days must account for school calendar exceptions (holidays, snow days, early releases); pull from the Ed-Fi CalendarDate and CalendarEvent resources rather than counting date range naively.
Students who transferred mid-year have membership days split across two StudentSchoolAssociation records; sum both records for the full-year absenteeism calculation.
Federal chronic absenteeism thresholds (10% absence) apply to excused plus unexcused absences combined; state thresholds may differ and should be parameterized rather than hardcoded.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp