Check Performance Data - KS2 September 2027 journeys
The decisions and assumptions behind the KS2 change-request journeys. Code comments refer to them by number ("decision 1", "assumption 2"). Keep the numbers stable.
Source: the business requirements document "September 2027 - Go Live timeline" and the KS2 feature comparison spreadsheet. Where those did not answer a question, the assumptions below apply.
Scope
KS2 has two journeys:
-
Remove a pupil, with 11 removal categories (see below). Flow file:
Remove_KS2.json. - Confirm pupil data is correct. This is the same as on KS4 June.
KS2 has no Merge, Include or Add journey. The requirements say so.
Decisions
-
The What to change options come from the flow files. An option shows only when
{WhatToChange}_{CheckingWindowType}.jsonexists (IQuestionFlowService.GetPupilDataChangesAsync). This applies to the pupil-data changes only: Merge, Include, Remove, Add. The results changes start from the results-enquiry page. The POST uses the same list, so a posted change with no flow file is refused. This replaces the hard-coded Merge and Remove radios and theIncludeJourney.SupportedWindowTypesandAddPupilJourney.SupportedWindowTypeslists.Window Flow files Options shown KS4 June Add, Include, Merge, Remove All four (no change) Post16 Include, Merge, Remove Include (since #711), Merge, Remove KS4 Autumn Add, Merge, Remove Add (since #749, a copy of the KS4 June add flow), Merge (since #747) and Remove (since #748). Before #706 it also showed Merge, Include and Remove, which then had no flow file and went nowhere. KS2 Remove Remove only To give a window type a journey, add its flow file. Note: the rules engine is keyed by window type too. A new flow file whose reasons have no rules for that window type sends every request to Scrutiny.
FlowReasonRuleCoverageTestsfails when a flow sends a reason that auto-decides on other window types but has no rule that can auto-decide on the flow's own. -
Add_KS2.jsonis deleted. -
The
DfeNumbervalidator stays. It accepts123/4567and1234567. The requirements' "exactly 7 numbers" means 7 digits, with or without the slash. -
No school-type differences on KS2. Every school type gets the same options.
Remove_KS2.jsonhas novisibleWhen. -
KS2 has no add-back pupils (no 403 code). The KS2 rules have no add-back branch.
-
Dates are for 2027. Every rule date and every hint uses the 2027 exercise.
-
"Tests", never "exams", on every KS2 page.
-
Only included pupils can be removed.
select-pupilusespupilFilter: "Included". The KS2 schema stampsINCLUDEDfor P_INCL 201 only.
Removal categories
Remove_KS2.json starts from Remove_KS4June.json and uses the same page ids where the
page is the same. Each file holds its own date rules for those pages. "Evidence" means the
shared evidence page.
| # | Category | Option value | Evidence | Rule |
|---|---|---|---|---|
| 1 | Admitted following permanent exclusion | permanent-exclusion |
Evidence |
AFE-KS2: reject if excluded before 1 Sept 2025 |
| 2 | Admitted from abroad with English not first language | english-not-first-language |
Evidence |
EAL-ACC-KS2-*: accept on or after 1 Sept 2024 (see EAL below) |
| 3 | Child missing education | child-missing-education |
Evidence |
PMIE-OTHER-REJ: reject unless Ground H or I |
| 4 | Pupil has died | pupil-died |
None |
DEC-1: accept |
| 5 | Elective home education | elective-home-education |
Evidence |
EHE-KS2: reject if removed on or after 10 May 2027 |
| 6 | Permanently excluded from current school | permanently-excluded |
Evidence |
PEX-KS2: reject if excluded on or after 10 May 2027 |
| 7 | Terminal or critical illness | life-limiting-illness |
Evidence |
TCI-KS2-REJ if tests sat; terminal illness goes to Scrutiny |
| 8 | Permanently left England | permanently-left-england |
Evidence |
PLE-KS2: reject if removed on or after 10 May 2027 |
| 9 | Social care involvement including police | social-care-involvement |
Evidence |
SCI-KS2-REJ if tests sat |
| 10 | End-of-key-stage assessments deferred by a year | assessments-deferred |
evidence-with-comments |
None: Scrutiny only (ASD-DEF) |
| 11 | Pupil added to school roll after start of summer term | added-after-summer-term |
evidence-with-comments |
PAS-REJ: reject if arrived before 1 April 2027 |
evidence-with-comments asks for a file and "Additional comments", both mandatory.
KS4 June reasons that KS2 does not have: dual registered or moved school, not on roll, year group change, completed KS4 elsewhere, Other (add-back).
EAL
The boundary for a "new admission" in 2027 is 1 Sept 2024. On or after it, the request is
auto-accepted (EAL-ACC-KS2-ALL, EAL-ACC-KS2-ARRIVAL). Before it, the request goes to
Scrutiny (EAL-DEF). The four KS4 accept rules (EAL-ACC-NEWADM-2022-*,
EAL-ACC-ADDBACK-2021-*) had no window-type condition, so they also fired on KS2. They are
now limited to KS4June. The two reject rules stay shared.
AFE-PRE2023 had no window-type condition either. It is now limited to KS4June, and
AFE-KS2 is the KS2 rule.
The rule dates only work in 2027
The KS2 rule dates are written into rules.json for the 2027 exercise. Before then:
-
PAS-REJrejects every request, because the arrival date must be in the past and so is before 1 April 2027. -
EHE-KS2,PEX-KS2andPLE-KS2never reject, because no past date is on or after 10 May 2027.
So in dev and QA these outcomes do not show what schools will see. Test them with a rule context that has a 2027 date, not by a browser walk.
Assumptions
These questions are not answered. We use the assumptions below and change them if the business answers differently.
- Elective home education and terminal illness wording. The requirements say the elective home education wording differs from KS4 June but do not give it. Use the KS4 June wording, with "tests", "year 6" and 2027 hints.
-
No EAL cohort check on KS2. On KS4, the
date-pupil-startedquestion has anonOrAftercohort.startdate rule. It rejects a "started at your school" date before the cohort started (scenario 007). The requirements give no such rule for KS2, soRemove_KS2.jsondoes not have this rule. The flow file decides, not the window type, as for decision 1. A KS2 pupil who started at the school before the cohort also started in England before 2024, so the request goes to Scrutiny with evidence. It does not need a hard error. - Child missing education uses the current KS4 June page (Ground H, Ground I, other).
-
Terminal illness when tests were sat goes to Scrutiny (
TCI-TERM-SCR), as on KS4 June, not to auto-accept.
Zendesk fields for the KS2 reasons
ZendeskTicketFieldOptions maps both KS2 reasons. The correction codes come from the LDS CYPMD
data specification (Remove (No Addback) tab, Correction_Reason).
| Removal reason | "Reason for removal" value | "Correction reason (31)" value |
|---|---|---|
assessments-deferred |
one_or_more_end_of_key_stage_assessments_deferred_by_a_year |
41_31 |
added-after-summer-term |
pupil_added_to_school_roll_after_start_of_summer_term |
109_31 |