Enrollment (Group Membership) Date Calculation
When a student is a member of a group, the effective membership period (the dates the student is treated as an active group member) is not necessarily the same as the dates registered on the membership. It is calculated from three sources:
- Group membership dates — the start/end dates registered on the membership itself.
- Student dates — the student's overall enrollment start/end dates.
- School year boundaries — the start and end of the school year the membership belongs to.
The membership cannot be active outside any of these windows, so the effective dates are bounded by all three.
Effective start date (beginDate)
The effective start date is the latest of:
- The group membership start date.
- The student's start date (if set).
- The school year start date.
A student is never considered an active group member before they were enrolled, before the membership officially started, or before the school year began — whichever comes last wins.
Examples
| Student start | Membership start | School year start | Effective start |
|---|---|---|---|
| (none) | 2025-09-01 | 2025-08-01 | 2025-09-01 |
| 2025-10-01 | 2025-08-01 | 2025-08-01 | 2025-10-01 |
| 2025-08-15 | 2025-09-01 | 2025-08-01 | 2025-09-01 |
| 2025-07-01 | 2025-06-01 | 2025-08-01 | 2025-08-01 |
Effective end date (endDate)
The effective end date is the earliest of:
- The group membership end date (if set).
- The student's end date (if set).
- The school year end date.
A student is never considered an active group member after they left, after the membership officially ended, or after the school year ended — whichever comes first wins. If neither the membership nor the student has an end date, the membership runs to the end of the school year.
Examples
| Student end | Membership end | School year end | Effective end |
|---|---|---|---|
| (none) | (none) | 2026-08-01 | 2026-08-01 |
| 2026-03-12 | (none) | 2026-08-01 | 2026-03-12 |
| 2026-09-01 | (none) | 2026-08-01 | 2026-08-01 |
| (none) | 2026-03-12 | 2026-08-01 | 2026-03-12 |
| (none) | 2026-09-01 | 2026-08-01 | 2026-08-01 |
| 2026-03-11 | 2026-03-12 | 2026-08-01 | 2026-03-11 |
| 2026-03-12 | 2026-09-01 | 2026-08-01 | 2026-03-12 |
| 2026-09-01 | 2026-03-12 | 2026-08-01 | 2026-03-12 |
| 2026-09-01 | 2026-10-01 | 2026-08-01 | 2026-08-01 |
When the student's dates fall outside the school year
The rules above assume the student is enrolled at some point during the school year. If the student's enrollment period does not overlap the school year at all, no effective membership exists for that school year — the student simply wasn't there.
Two examples of this:
| Student dates | School year | Outcome |
|---|---|---|
| 2026-09-01 → 2027-01-01 | 2025-08-01 → 2026-08-01 | Student wasn't enrolled until after the school year ended — no membership for this school year. |
| 2024-01-01 → 2025-06-01 | 2025-08-01 → 2026-08-01 | Student left before the school year started — no membership for this school year. |
If you see a membership where the student's enrollment period doesn't overlap the school year, this typically indicates a data inconsistency in the source system worth reviewing — the membership shouldn't have been registered against that school year in the first place.
Summary
Begin date = the latest of all three start dates. End date = the earliest of all three end dates.
The school year always acts as a hard boundary on both ends — a membership is only ever counted within its school year.