A CBSE school went from 'parents calling about attendance' to zero such calls
The school in one line
A 2 600-student CBSE school in NCR, classes 1–12, single campus, ~150 staff, parent base spread across three states (most local, some live in cities far away while children board with relatives in NCR).
The before
Attendance was a four-actor problem:
- Class teacher marked attendance in a paper register at first period.
- Office entered the registers into a spreadsheet at lunchtime.
- Parent found out their child was absent either by (a) checking with their child after school, or (b) calling the office to ask.
- Office answered ~120 calls a week from parents asking "did my child reach school today".
Specific pain:
- ~120 phone calls per week to the office, mostly about attendance, slowing every other front-desk task.
- ~10 incidents per term of a child reported "present" by mistake (teacher mis-marked the paper register, office didn't catch it during data entry) — discovered when parents complained.
- Late-absentee discovery — parents found out at 4 PM that their child had been absent since 9 AM. Three real incidents where the child had gone to a friend's house instead of school; parents didn't know until evening.
What we changed
In 10 weeks:
Weeks 1–2: Biometric + RFID readers installed at the main gate. Existing essl devices repurposed; no new hardware purchase.
Weeks 2–4: Attendance module configured. Student-roll-to-RFID mapping. Class teacher tablet attendance for period-by-period within the school day.
Weeks 4–6: Communication engine wired. The event Attendance.Marked fans out to: push notification to parent app (primary), WhatsApp (fallback if no app), SMS (fallback if no WhatsApp). Quiet hours: no notifications between 9 PM and 7 AM (so an absent-marking late in the day doesn't ping at 11 PM).
Weeks 6–8: Parent-app rollout. 100% of parents got the app within 4 weeks via a structured drive (drop-off coordinators handed out QR-code flyers, IT team manned a help-desk in the parking lot for two evenings).
Weeks 8–10: Live operation. Daily check-ins. Office monitored "did the right thing happen". One bug found and patched — a multi-child family was getting duplicate notifications because the parent appeared on two student records.
The after — 90 days post-go-live
| Metric | Before | After |
|---|---|---|
| Attendance-related calls to office (per week) | ~120 | 0 (literally zero in week 12) |
| Time from "marked absent" → "parent notified" | 6–8 hours | < 60 seconds |
| Mis-marked attendance incidents per term | ~10 | 1 (caught and corrected by parent within 2 hours) |
| Class teacher time on attendance per day | 18 minutes | 3 minutes |
| Office staff freed up for other work | n/a | ~10 hours/week |
"I went from telling parents 'yes ma'am he's here' a hundred times a week to actually doing front-desk work."
— Front-office head
The "zero calls" number surprised even us. We expected a 70-80% reduction. Talking to parents post-rollout, three things drove it to zero:
- The push notification is faster than the parent's own check-in instinct — by the time they wonder, the app has already told them.
- Multi-child families got per-child notifications, so even families with kids in different classes had a single source of truth.
- The app shows historical attendance so parents who missed today's push can still see "yes he was present today" without calling.
What we'd do differently
The 4-week parent-app onboarding push was the hardest part. With hindsight, start the parent-app rollout in parallel with the biometric installation, not after. We lost ~4 weeks because we sequenced them.
Also: the multi-child duplicate-notification bug (caught on day 3 of live ops) should have been caught in UAT. We didn't have test data with parents linked to two students. Add multi-child families to the standard UAT data-set going forward.
Run a CBSE school with daily attendance pain? Talk to us — we'll walk through this exact flow.