You are coding one parent's absence note for the attendance office of Riverbend Unified School
District, against the district's written attendance policy (BP 5113) and the school calendar, both
of which follow. Your output is the CODED ABSENCE RECORD a member of office staff confirms -- so
that the office confirms a record instead of reading a note.
How to read the note:
- The note is the parent's account of the REASON. It is NOT evidence of documentation. What the
office holds is stated in the OFFICE RECORD below; a note that says a card "is attached" or "was
dropped off" changes nothing if the office logged no attachment.
- Resolve every date the note gives against the date the office received it and the calendar
below. Only SCHOOL DAYS are absence days -- never a Saturday, a Sunday or a listed non-school
day. An early-release day is a school day.
- A late arrival or an early dismissal is a partial-day record on that one day.
- If the note gives two reasons for different days, return one record per reason. If a rule in
the policy codes some days of one span differently from the rest, return one record per code.
- verify is true when the note names a student other than the one on the office record, or a
name that does not match it. Code the content regardless.
- Apply the policy as written, including its arithmetic: consecutive school days, the late-note
rule, the pre-approval rule. Where the note leaves you unsure, code what the policy says and
say so in `why`.
Reply with JSON and nothing else, in the shape given at the end.
THE ATTENDANCE POLICY, as written:
# Riverbend Unified School District — Board Policy 5113
## Attendance: Excused and Unexcused Absences (2026-27, as applied to the Fall 2026 term)
*This district, this policy and every student, parent and note in this kit are invented. See
`data/SOURCES.md`.*
### 5113.1 — How an absence is recorded
1. The attendance office records every absence as one or more **coded absence records**. A record
is one code applied to one set of **school days**. A parent's note is the account of the
reason; the office record is the account of what documentation the office actually holds.
2. **Only school days are absence days.** Saturdays, Sundays and the non-school days on the
district calendar are never absence days, whatever a note says. An early-release (minimum) day
is a school day.
3. **A late arrival or an early dismissal is a partial-day record on that one day**, coded by the
same rules as a full day for the same reason, and marked partial.
4. Where a note gives **two reasons for different days**, the office records one record per reason.
Where a rule below codes some days of one span differently from the rest, the office records
one record per code.
5. **Documentation is what the office has logged with the note** — not what the note says was
sent, attached, or will follow. A note that says "the doctor's note is attached" with no
attachment logged is a note with no documentation.
6. **verify** is set when the note names a student other than the student on the office record, or
a name the office cannot match to it. The record is still coded from the note's content; verify
only asks a person to confirm the match before the record is confirmed.
### 5113.2 — Excused absences
| code | reason | documentation |
|---|---|---|
| **EXC_ILL** | (a) student illness | a parent's note covers up to **3 consecutive school days**. Illness of **4 or more consecutive school days** requires a **healthcare provider's note** |
| **EXC_MED** | (b) medical, dental or vision appointment | an **appointment card** or provider's visit confirmation, **always** — a partial day too |
| **EXC_REL** | (c) religious observance | none — the parent's note is sufficient |
| **EXC_FAM** | (d) family emergency or bereavement (a death or serious illness in the immediate family) | a parent's note covers the **first 3 school days**. Days beyond the third require a **written family statement** |
| **EXC_LEGAL** | (e) court appearance or other legal obligation of the student | a copy of the **court notice or summons**, always |
| **EXC_PRE** | (f) pre-arranged absence — travel, a family event, a college visit or similar planned absence | a **Pre-Arranged Absence Form approved at least 5 school days before the first day absent**. Count back from the first day absent: the school day immediately before it is one school day before. A form approved later than that is not an approval for this purpose |
Consecutive school days are counted across weekends and non-school days: a student out Thursday,
Friday and the following Monday has been out **3** consecutive school days.
### 5113.3 — Unexcused absences (UNX)
(a) An absence for a reason this policy does not name is unexcused. That includes vacation or travel
with no approved Pre-Arranged Absence Form, oversleeping or missed transport, an absence for which no
reason is given, and "family obligations", "family commitments" or "personal reasons" that do not
describe an emergency or bereavement under 5113.2(d).
(b) **Late notes.** Day one is the first school day after the last day absent — the day the
student is back. A note the office logs **on or before the third school day** is timely. A note
logged **after the third school day** is late, and **every day it covers is coded UNX, whatever the
reason and whatever documentation accompanies it.**
(c) An absence coded UNX requires no documentation: its documentation status is `not_required`,
because no document changes the code.
### 5113.4 — Pending documentation (PENDING)
Where the reason qualifies under 5113.2 and the documentation that reason requires has **not been
logged**, the days that require it are coded **PENDING** with documentation status `missing`, and
the record names the document required. Under 5113.2(d), days one to three are EXC_FAM on the
parent's note and only the days beyond the third are PENDING for the family statement. Under
5113.2(f), a missing or late-approved form does not leave the days pending: it makes them UNX.
### 5113.5 — The record
Each coded absence record carries: the **code**; the **school days** it covers; whether it is a
**partial** day (`none`, `late_arrival`, `early_dismissal`); the **reason category** the note
supports (`illness`, `medical_appointment`, `religious_observance`, `family_emergency`, `legal`,
`travel_or_event`, `overslept_or_transport`, `no_reason`, `other`); the **documentation required**
(`none`, `provider_note`, `appointment_card`, `court_notice`, `prearranged_form`,
`family_statement`); the **documentation status** (`attached`, `missing`, `not_required`); the
**verify** flag; and one sentence of **why**. `not_required` is used whenever this policy requires
no document for the record, even if something was attached.
THE SCHOOL CALENDAR:
Calendar window 2026-08-13 to 2026-10-15, Fall 2026 term (2026-08-24 to 2026-12-18).
Saturdays and Sundays are never school days.
School days in this window:
2026-08-24 Mon 2026-08-25 Tue 2026-08-26 Wed 2026-08-27 Thu 2026-08-28 Fri
2026-08-31 Mon 2026-09-01 Tue 2026-09-02 Wed 2026-09-03 Thu 2026-09-04 Fri
2026-09-08 Tue 2026-09-09 Wed 2026-09-10 Thu 2026-09-11 Fri 2026-09-14 Mon
2026-09-15 Tue 2026-09-16 Wed 2026-09-17 Thu 2026-09-18 Fri 2026-09-21 Mon
2026-09-22 Tue 2026-09-23 Wed 2026-09-24 Thu 2026-09-25 Fri 2026-09-28 Mon
2026-09-29 Tue 2026-09-30 Wed 2026-10-01 Thu 2026-10-02 Fri 2026-10-05 Mon
2026-10-06 Tue 2026-10-07 Wed 2026-10-08 Thu 2026-10-09 Fri 2026-10-13 Tue
2026-10-14 Wed 2026-10-15 Thu
Weekday NON-school days in this window:
2026-09-07 Mon Labor Day
2026-10-12 Mon Staff Development Day (no students)
OFFICE RECORD -- what the attendance office holds. This is the authority on what
documentation exists; the note is not.
Student on record Wesley Nguyen (RB-31262), grade 6, Riverbend Middle School
Note received (logged) 2026-09-17 (Thursday)
Attachments logged none
Pre-Arranged Absence Form none on file
THE NOTE, verbatim:
[Handwritten note on lined paper, transcribed by the front office. Received Thursday, September 17, 2026 at 7:57 PM.]
To whom it may concern,
Wesley Nguyen was out Sept 16 and 17: there was a death in the family and we were away for the services. Let me know if you need anything else.
Monica Nguyen
Reply with JSON and nothing else, exactly this shape:
{"student_named_in_note": "<the student's name exactly as the note gives it, or null if the note names no student>",
"records": [
{"reason_category": "illness" | "medical_appointment" | "religious_observance" | "family_emergency" | "legal" | "travel_or_event" | "overslept_or_transport" | "no_reason" | "other",
"first_day": "<YYYY-MM-DD: the first day the note describes for this record>",
"last_day": "<YYYY-MM-DD: the last day; the same as first_day for a single or partial day>",
"dates": ["<YYYY-MM-DD>", ...],
"partial": "none" | "late_arrival" | "early_dismissal",
"code": "EXC_ILL" | "EXC_MED" | "EXC_REL" | "EXC_FAM" | "EXC_LEGAL" | "EXC_PRE" | "UNX" | "PENDING",
"documentation_required": "none" | "provider_note" | "appointment_card" | "court_notice" | "prearranged_form" | "family_statement",
"documentation_status": "attached" | "missing" | "not_required",
"verify": true | false,
"why": "<one sentence naming the clause that decided the code>"}
]}
`dates` lists only the SCHOOL DAYS the record covers, in order. One record per reason, and one
record per code where the policy splits a span.