Skip to content

Import templates

Reference for CSV/XLSX shapes used when loading school data.

Staff CSV

Path in app: downloadable from Staff (also templates/staff.csv / apps/web/public/templates/staff.csv).

ColumnTypeNotes
NamestringRequired display name
EmailstringOptional
TeamstringTeam / grade banding hint
RolestringJob title label
Duty tierenumpreferred, acceptable, last_resort, excluded
First aiderbooleantrue / false
csv
Name,Email,Team,Role,Duty tier,First aider
Alex Example,alex@school.test,Professional Services,Teaching Assistant,preferred,true
Sam Example,sam@school.test,Teaching Staff,Class Teacher,last_resort,false

Staff XLSX

Kenley-style sheets may encode duty eligibility via traffic-light cell fills. Parsing is implemented in apps/web/src/server/lib/xlsx-duty-tier.ts using domain helpers dutyTierFromFillRgb and dutyTierFromLabel.

Prefer an explicit Duty tier column when you control the template.

Teaching timetable CSV

Path: templates/teaching-timetable.csv / Staff → Teaching timetable (CSV)

ColumnTypeNotes
Staff email / Staff namestringMatch to staff profile
WeekdaystringMon–Fri
Start / EndtimeHH:MM
SubjectstringLesson label
ClassstringOptional; creates class row
RoomstringOptional
Weekenumblank, A, B
NotesstringOptional

See Importing a teaching timetable.

Other template stubs

Repository templates/ may also include starter headers for zones, weekly rota, and absences. Treat them as reference shapes — validate against the current Staff/Setup UI before bulk loading.

See also

SchoolRota documentation — every slot covered, every day.