Student Support Program
The Student Support Program is where a school runs its special-education / SEN (Special Educational Needs) case management — the equivalent of an IEP (US), an EHCP/SEN plan (UK), or an RPwD/PEI-style program elsewhere. A student is referred, the referral is triaged into a formal enrollment, and from there the school builds a support plan with measurable goals, logs the actual sessions delivered, holds periodic review meetings, tracks consent, and records standing accommodations — all against one student, one case file, over time.
The module is deliberately privacy-first: a student’s diagnosis is a separate, permission-gated field that most staff never see, even if they can see everything else about the case. And every AI-assisted feature in the module is a draft only — nothing is ever auto-filed; a human reviews and edits before anything is saved.
How it works in one minute
Section titled “How it works in one minute”-
A staff member raises a referral for a student — a short concern, optional evidence, and a requested action. This needs only the lightweight
support-program:referpermission, so any teacher or counselor can flag a concern without needing case-management access. -
A coordinator triages the referral — either converts it into a formal enrollment (setting the program, need type, diagnosis if known, and severity) or declines it with a reason. This step needs
support-program:manage. -
The enrollment becomes the student’s case file. From there the coordinator (or an assigned professional) builds a support plan — strengths, barriers, provision, exit criteria — with one or more measurable goals, each with a baseline, target, and measure type (percent / count / scale / yes-no).
-
Professionals log sessions as they deliver support — pull-out, push-in, consultation, assessment, or a family meeting — with attendance and an observation note. Progress against each goal is recorded over time and charted.
-
Review meetings are scheduled periodically to check progress with the family/team, with minutes and agreed follow-up actions (which can push straight into Team Tasks).
-
Consent and accommodations are tracked alongside the case — consent for the program itself (and its withdrawal), and standing classroom/assessment accommodations that other staff and exam workflows can see.
-
AI can draft — never file — five things along the way: a session note from shorthand bullets, a full plan skeleton from a referral/observation summary, a goal-quality check before saving a new goal, a progress narrative for a review meeting, and (as part of the school’s AI assistant) plain-language answers about a student’s case load or compliance status.
Where to find it
Section titled “Where to find it”| Role | Where | What’s there |
|---|---|---|
Owner / Manager / Coordinator (with support-program:manage) | Sidebar → Student Support → Student Support | School-wide enrollment roster — every student currently or previously in a support program |
Anyone with support-program:refer or support-program:manage | Sidebar → Student Support → Support Referrals | Pending/converted/declined referral queue — a refer-only user sees just their own submissions; view/manage holders see everyone’s |
| A professional with an active caseload | Sidebar → Student Support → My Caseload | Every student currently assigned to you, across the whole school — the own-scope mirror of the full roster |
| Any staff delivering support sessions | Sidebar → Student Support → Log a Session | Today’s scheduled support slots (auto-populated from Staff Schedule) plus a standalone session form for anything off-schedule |
Holders of support-program:report | Sidebar → Student Support → Reports | School-wide breakdowns by class, program, diagnosis category, professional, plus a compliance dashboard (overdue reviews, consent gaps) |
| Student (secondary only) / Parent | Sidebar → My Learning → My Support / Sidebar → Utilities → My Children’s Support | Read-only overview of enrollment status, goals, progress, meetings, and consent — never diagnosis or raw session observation notes — only if the school has turned the family portal on |
Roles & permissions
Section titled “Roles & permissions”Unlike Behavior Records, Student Support is not read-by-default — case files are sensitive by nature, so every permission here is opt-in per position.
| Permission key | What it unlocks |
|---|---|
support-program:view | See every enrollment in the school — the full roster, not just your own caseload |
support-program:manage | Enroll, withdraw, assign professionals, edit plans/goals/sessions/meetings, convert or decline referrals, manage programs/diagnosis categories/severity levels/session types |
support-program:view-own | See and act on only the students assigned to you — the caseload-scoped counterpart to view/manage |
support-program:diagnosis-read | See the diagnosis category/severity field — layered on top of any of the above; without it, diagnosis always shows as Restricted, even to someone who can otherwise manage the case |
support-program:refer | Raise a referral for a student — deliberately separate and lightweight, so any teacher can flag a concern without case-management access |
support-program:report | The Reports section — cross-student breakdowns and the compliance dashboard |
support-program:settings | Manage the org-level program/diagnosis-category/severity-level/session-type lists and the two toggles (Family Portal, Support AI) in Settings |
Grant any of these per position from Settings → Positions — for example, give a Teachers position just view-own and refer so a class teacher can flag concerns and see their own caseload, without ever being able to convert a referral or read a diagnosis.
For school owners & admins — setup
Section titled “For school owners & admins — setup”-
Open Settings → Student Support. Four tabs manage the taxonomy every enrollment and session draws from: Programs (e.g. “Inclusive Education Support Program”), Diagnosis Categories, Severity Levels, and Session Types (e.g. “Reading intervention”, “Speech therapy”). None of these exist by default — the school defines its own taxonomy, or imports one.
Preset Modeled on US IEP US Individualized Education Program categories UK SEN UK SEN Code of Practice categories India RPwD India’s Rights of Persons with Disabilities Act categories Spain NEE Spain’s Necesidades Educativas Especiales categories Chile PIE Chile’s Programa de Integración Escolar categories Generic A neutral starting set for schools outside these systems Importing a preset seeds Programs, Diagnosis Categories, and Severity Levels in one go — you can still edit, add, or deactivate afterward. Session Types are not part of any preset; add at least one (e.g. “Reading intervention”) before anyone can log a session — the session-logging form requires a type and has none by default.
-
Turn on the Family & Student Portal, if you want guardians and secondary students to see a redacted view of the case (status, goals, progress, meetings, consent — never diagnosis or session notes). Off by default.
-
Turn on Student Support AI, if your school has already configured an AI provider under Settings → AI Assistant. This is a separate opt-in from the org’s AI provider itself — a school can have AI configured for other features (e.g. syllabus, exam grading) while keeping it off here, and vice versa.
-
Grant permissions per position — see the table above. A typical split: give class teachers
view-own+refer; give a Learning Support Coordinatormanage+report+diagnosis-read; give a Head of Inclusionsettingson top of that.
Bulk importing an existing register
Section titled “Bulk importing an existing register”Most schools do not adopt Student Support with an empty register — they arrive with an existing SEN list of 40, 80, or 200 students already receiving support, maintained in a spreadsheet for years. Enrolling those one dialog at a time is hours of clicking, so the roster has a Bulk import button that takes that spreadsheet directly.
Students are matched by admission number — the ID already printed on their card and used everywhere else in the school — so you never have to look anyone up.
What goes where
Section titled “What goes where”The fields that are the same for the whole file are chosen once in the dialog; only the ones that genuinely vary per student are columns.
| Set once, in the dialog | Per student, in the CSV |
|---|---|
| Program, Need type (temporary / permanent), Start date | admission_no, diagnosis_category, severity_level, review_due_date, notes |
The columns
Section titled “The columns”| Column | Required | Notes |
|---|---|---|
admission_no | Yes | Must match a student’s admission number in this school exactly (case is ignored). |
diagnosis_category | No | The name or code of one of your configured diagnosis categories — e.g. Autism spectrum or ASD. Case and surrounding spaces are ignored. |
severity_level | No | The name of one of your configured severity levels — e.g. Moderate. |
review_due_date | No | YYYY-MM-DD. Leave blank if you set review dates later. |
notes | No | Free text, up to 2000 characters. |
A file containing nothing but a single admission_no column is perfectly valid — everything else can be filled in per student afterwards.
How to run it
Section titled “How to run it”-
Make sure your taxonomy exists first. Bulk import references your Programs, Diagnosis Categories, and Severity Levels by name — so set them up (or import a preset) before you start. If there are no active programs, the importer will tell you so instead of letting you upload.
-
Open Student Support from the sidebar and click Bulk import. Choose the program, need type, and start date that apply to the whole file.
-
Download the template. This is worth doing even if you already have a spreadsheet: the template is generated from your school’s catalog, so the example rows contain the exact diagnosis and severity strings that will match. Copy your data into it rather than guessing at the wording.
-
Upload the file — drag and drop, or click to browse. CSV only, up to 2 MB and 500 rows per upload. Split a larger register into two files.
-
Check the preview. Every row is validated before anything is written. Values that don’t match your configured lists are highlighted in amber with a “Did you mean…?” suggestion, and a checkbox lets you either import those rows with the unmatched field left blank, or leave it off so those rows are reported back for you to fix.
-
Import. You get a count of students enrolled, plus a list of any rows that were skipped and why.
What gets skipped, and why
Section titled “What gets skipped, and why”Rows are processed individually — a bad row never fails the batch. Anything that couldn’t be imported comes back in a list with its admission number so you can find the line in your spreadsheet.
| Reason | What it means | Fix |
|---|---|---|
| No student with this admission number | Nothing in this school matches that ID. | Check for a typo, or add the student first. |
| Student is not active | The student is archived, deleted, or has a status such as withdrawn or graduated. | Reactivate the student, or drop the row. |
| Already enrolled in this program | They have a live enrollment in the program you picked. | Nothing — this is what makes re-uploading the same file safe. |
| Unknown diagnosis category / severity level | The value isn’t one of your configured names or codes, and you chose not to import unmatched values as blank. | Correct the spelling, add the category in settings, or re-run with the blank option ticked. |
Bulk import needs support-program:manage, the same permission as enrolling a student by hand, and each import is written to the audit log as a single entry with the number of enrollments created.
For staff — running a case
Section titled “For staff — running a case”Raising a referral
Section titled “Raising a referral”- Open Support Referrals from the sidebar and click Raise a referral.
- Search for the student, write the concern, and optionally add evidence and a requested action.
- Submit. It lands in the Pending queue for whoever has
support-program:manageto triage — a refer-only user can see it in their own list but can’t act on it.
Converting or declining a referral
Section titled “Converting or declining a referral”A pending referral can be converted into a full enrollment (choosing the program, need type, and diagnosis/severity if known) or declined with a required reason. Both actions need support-program:manage; a declined referral shows a small reason icon in the queue that anyone can click to read why, no extra permission required.
Building a support plan
Section titled “Building a support plan”- From the student’s enrollment record, click New plan — or Draft a plan with AI if the school has AI enabled (see below).
- Fill in the four plan sections: Strengths, Barriers, Provision, Exit criteria.
- Add one or more goals — a title, measure type (percent / count / scale / yes-no), and a target value. Optionally run Check with AI first (see below) before saving.
- Move the plan through its lifecycle: Draft → Active → Under review → Closed.
Logging progress against a goal
Section titled “Logging progress against a goal”Open a goal on the plan and click Record progress — a value and an optional note. Progress is charted over time against the goal’s target line, with a hover tooltip showing the exact value, date, and note for each point.
Logging a session
Section titled “Logging a session”- Open Log a Session. Any of today’s scheduled support blocks (from Staff Schedule) show up automatically, ready to log with one tap — no searching for the student.
- For anything off-schedule, use the standalone session form at the bottom: pick the student(s), date, time, duration, delivery mode, session type, and mark attendance.
- Add an observation note per student — or use Draft with AI to turn shorthand bullets into a written note.
Scheduling a review meeting
Section titled “Scheduling a review meeting”From the enrollment record, click Schedule meeting — a date, optional start time, and an agenda. Once held, add minutes (or generate a first draft from the term’s actual goal-progress and session data with AI — see below) and any agreed actions, which can be pushed straight into Team Tasks for follow-up.
Assigning professionals
Section titled “Assigning professionals”A case can have one or more assigned professionals (e.g. a lead SEN teacher plus a speech therapist), each with a role label and a start/end date. Reassigning ends the current assignment and starts a new one — history is kept, not overwritten.
Recording consent
Section titled “Recording consent”Log consent for the program (and withdraw it later if a family changes their mind) from the enrollment’s Consent Records section — a straightforward audit trail of when and by whom.
Adding accommodations
Section titled “Adding accommodations”Standing classroom/assessment adjustments (extra time, preferential seating, etc.) live in Accommodations on the enrollment record — continuous adjustments, distinct from the scheduled Sessions log. Other parts of the system (e.g. exam-day workflows) can read a student’s active accommodations independently of Student Support permissions.
The AI layer
Section titled “The AI layer”Every AI action in this module follows the same rule: it drafts, a person decides. Nothing is ever saved automatically — every draft is shown for review and edit first, and accepting one only stamps an audit record; it never silently writes content elsewhere.
| Action | Where | What it does |
|---|---|---|
| Draft a session note | Log a Session | Turns a staff member’s shorthand bullets into 2–4 sentences of professional, factual case-file prose |
| Draft a plan | Support plan | From a referral concern, prior-plan summary, recent observations, and/or current accommodations, proposes the four plan sections plus 1–6 measurable goals |
| Goal quality check | Add-goal form | Before saving, flags whether a goal is genuinely measurable — a clear metric, a target, something two people could agree was met or not — and suggests a rewrite if it isn’t |
| Progress narrative | Review meeting minutes | Summarizes the term’s actual recorded goal-progress and session data into 1–2 paragraphs of parent/coordinator-facing prose, referencing real dates and datapoints — never inventing facts not in the record |
| AI assistant tools | School-wide AI Assistant | Answers plain-language questions about caseloads and compliance (e.g. “who on my caseload has a review due this month?”); diagnosis only surfaces if both the org’s diagnosis-in-AI toggle and the caller’s own diagnosis-read permission allow it |
Both the org’s AI provider (Settings → AI Assistant) and the module’s own Student Support AI toggle (Settings → Student Support) need to be on for any of this to appear — otherwise every AI entry point shows a quiet “Set up AI” prompt instead of erroring.
Diagnosis privacy
Section titled “Diagnosis privacy”A student’s diagnosis category and severity are the one field in this module that’s gated separately from everything else. Someone can have full manage access to a case — plans, goals, sessions, meetings — and still see “Diagnosis (restricted)” instead of the actual category, unless their position is also granted support-program:diagnosis-read.
The family portal view is redacted the same way, permanently — diagnosis and raw session observation notes never reach a student or parent account, regardless of any staff-side permission.
Reports & compliance
Section titled “Reports & compliance”| View | What it shows |
|---|---|
| By class | Enrollment counts and program mix per class |
| By program | How many students are on each support program |
| By diagnosis category | Breakdown across diagnosis categories — only populated for callers with diagnosis-read |
| By professional | Caseload size and session counts per assigned professional |
| Compliance dashboard | Enrollments with an overdue review meeting, and consent gaps (enrolled without a recorded consent) — or a “family portal is off” note if consent tracking isn’t applicable |
| Export | A CSV/row export of the current view’s underlying data, respecting the caller’s diagnosis-read permission the same way the on-screen view does |
A daily background job also checks every school’s scheduled support blocks (from Staff Schedule) against what’s actually been logged, and nudges any staff member with an unlogged session — a rollup notification linking straight back to Log a Session.
For students & parents
Section titled “For students & parents”My Support (student, secondary grades only) and My Children’s Support (parent) show a read-only view of: enrollment status, program and need type, goals and their progress charts, review meetings, and consent status. Diagnosis and raw session observation notes are never included, and the view only exists at all if the school has turned the Family & Student Portal setting on.
Notifications
Section titled “Notifications”| Event | Who’s notified |
|---|---|
| A professional is assigned or reassigned to a case | The newly assigned professional |
| A review meeting is scheduled | Assigned professionals on the case |
| A scheduled support session goes unlogged by end of day | The staff member who was scheduled for it, via the daily compliance check, linking to Log a Session |
Common questions
Section titled “Common questions”Why can’t I log a session even though I have access?
Section titled “Why can’t I log a session even though I have access?”Almost always because the org has no Session Types configured yet — add at least one from Settings → Student Support → Session Types. This is the single most common first-day setup gap.
Why does the diagnosis field say “Restricted” even though I can edit everything else on this case?
Section titled “Why does the diagnosis field say “Restricted” even though I can edit everything else on this case?”Diagnosis is gated by a separate permission, support-program:diagnosis-read, on top of whatever manage/view-own access you have. Ask an admin to add it to your position if you need it.
I raised a referral — why can’t I see it convert, or convert it myself?
Section titled “I raised a referral — why can’t I see it convert, or convert it myself?”Raising a referral only needs support-program:refer. Converting it into an enrollment needs the separate support-program:manage permission — by design, so a school can let many staff flag concerns while keeping the actual enrollment decision with a smaller group.
Why don’t I see “Draft a plan with AI” / any AI button?
Section titled “Why don’t I see “Draft a plan with AI” / any AI button?”Two switches both need to be on: the org’s AI provider (Settings → AI Assistant) and this module’s own Student Support AI toggle (Settings → Student Support). If either is off, the button shows a “Set up AI” prompt instead.
Can a parent or student see the diagnosis?
Section titled “Can a parent or student see the diagnosis?”No — never, under any setting. The family portal view is permanently redacted for diagnosis and raw session notes, independent of any staff-side AI or permission toggle.
Does an AI-drafted note get saved automatically?
Section titled “Does an AI-drafted note get saved automatically?”No. Every AI output is a draft shown for review and edit; a human has to explicitly accept it (or paste/apply it) before anything is saved to the case.
What’s coming next
Section titled “What’s coming next”| Feature | Status |
|---|---|
| Accommodation indicators on the class register, seating charts, and gradebook | Not yet built — those surfaces don’t exist yet independent of this module |
| Additional in-context AI actions for teacher-, parent-, and coordinator-facing views (beyond the five shipped) | Not yet built |
| A middle permission tier that can see the full referral queue without being able to convert or decline | Achievable today via custom position grants combining view without manage; not a default preset |