Smart class allocation for primary schools — balanced, transparent, professional.

Built for the decisions that shape a child's year
New here? Try the demo cohort
400 pupils across Year 1–8, pre-loaded with wishes, separations and pastoral flags
Upload register

Import a pupil register CSV from your school MIS, or load a saved project JSON file to continue where you left off.

Returning to a project? Load a saved handoff JSON file to continue.
📄
Drop CSV here or click to browse
Accepts MIS exports from SIMS, Arbor, Bromcom and similar. Column names like "Current year group" and "Current class" are recognised automatically.

CSV format

Required: first, last

Recommended: dob, current_class, gender (M/F), reading, writing, maths (1–6), year_group, attendance (%)

Flag columns (Y/1 = flagged): sen, beh, eal, fch, abs, gi, lac, med

Next year's teachers Teachers who will take the new classes — assign them to class slots above
or drag & drop teacher CSV here
No teachers added yet.
Class Teacher

Select your class, then add pastoral flags and notes for each pupil. Only tick what's relevant — unticked means no concern. Load a JSON file from the sidebar if pupils aren't showing.

Allocation setup

Configure how classes are built — priorities, teachers, separations, family requests, and staff groupings.

New classes Teacher + year group composition per class

For each class, assign a teacher and select the year group(s) it will contain (the next year groups, not the current ones). Composite classes show a ratio slider. Constraint mode applies when auto-allocating.

Pupil wish settings Configure the pupil choices process
Pastoral flags Choose which flags class teachers can see and add. Drag to reorder.

Toggle flags on/off to control what class teachers see. Active flags also appear in the allocation priority list below. Add custom flags for your school's specific needs.

Allocation priorities Drag to reorder • toggle on/off
Separation requirements Pupils who must be in different classes
must NOT be with
Staff grouping recommendations Pairs that benefit from being together
should be with
Attainment grouping Assign R/W/M levels to each new class — auto-allocate will honour these
No attainment data loaded yet. Upload a CSV with Reading, Writing and Maths columns first.
Handoff workflow Who reviews this file, and in what order?

The handoff chain is the current class teachers — the ones who know their pupils. Add the Team Leader first, then each current class teacher in the order they should review the file. Current classes are detected from your register automatically.

Family / parental requests Toggle whether each will be honoured
Show:
⚠ Unallocated
All pupils allocated ✓
Social analysis

Peer preference data — use to identify social isolation and inform placement decisions.

No pupil preference data loaded yet. Preferences come via CSV upload (wishes columns) or via the Pupil screen.
Attainment

Record Reading, Writing, and Maths levels. Use these to set class grouping rules and ensure balanced spread.

Measure definitions
Pupil attainment data
Class attainment rules Set R/W/M ranges per new class — allocation will try to honour these
Pupil Choices

Each pupil selects up to 3 classmates they'd like to be with. The allocator guarantees at least one wish is met per pupil where possible.

Who are you?
Class complete!
Click "Save JSON" in the sidebar to save your work, then share the file with your team.