Skip to main content

Check Performance Data - Remove (KS4 June) — Question Flow

This document describes the branching question flow defined in src/DfE.CheckPerformanceData.Web/Data/QuestionFlows/Remove_KS4June.json. It is the flow a school follows when requesting that a pupil be removed from the Key Stage 4 (June) performance data.

{pupilName} is interpolated at runtime with the selected pupil's name.

  • First page: reason
  • Terminal pages (no nextPageId): evidence, year-group-change-evidence, not-on-roll-evidence, dual-registered-moved-evidence, pupil-died

Flow diagram

flowchart TD
    reason["reason<br/>(Radio · 12 options, 2 school-type conditional)"]

    %% --- branches off the reason question ---
    reason -->|Admitted following permanent exclusion?" non-independent schools only| permanent-exclusion
    reason -->|Admitted from abroad, English not first language| english-not-first-language
    reason -->|Child missing education| child-missing-education
    reason -->|Pupil has died| pupil-died
    reason -->|Dual registered or moved school| dual-registered-moved
    reason -->|Elective home education| elective-home-education
    reason -->|Not on roll · independent schools only| not-on-roll
    reason -->|Permanently excluded from current school| permanently-excluded
    reason -->|Permanently left England| permanently-left-england-questions
    reason -->|Social care involvement| social-care
    reason -->|Terminal or critical illness| life-limiting-illness
    reason -->|Year group change| year-group-change-higher-lower

    %% --- intermediate / branching pages ---
    english-not-first-language --> english-not-first-language-details

    year-group-change-higher-lower -->|Higher| year-group-change-higher
    year-group-change-higher-lower -->|Lower| year-group-change-lower

    %% --- routes into the shared evidence page ---
    permanent-exclusion --> evidence
    permanently-excluded --> evidence
    child-missing-education --> evidence
    english-not-first-language-details --> evidence
    permanently-left-england-questions --> evidence
    life-limiting-illness --> evidence
    social-care --> evidence
    elective-home-education --> evidence

    %% --- year-group change has its own evidence page ---
    year-group-change-higher --> year-group-change-evidence
    year-group-change-lower --> year-group-change-evidence

    %% --- not on roll has its own evidence page ---
    not-on-roll --> not-on-roll-evidence

    %% --- terminal pages ---
    pupil-died --> done([End / Check answers])
    dual-registered-moved --> dual-registered-moved-evidence
    dual-registered-moved-evidence --> done
    evidence --> done
    year-group-change-evidence --> done
    not-on-roll-evidence --> done

    classDef terminal fill:#d4edda,stroke:#28a745;
    classDef start fill:#cce5ff,stroke:#004085;
    class reason start;
    class evidence,year-group-change-evidence,not-on-roll-evidence,pupil-died,dual-registered-moved-evidence terminal;

Page-by-page breakdown

reason — start

Single Radio question driving the whole flow. useAsRequestType: true and contentKey: true. Each option sets its own nextPageId:

Option value Label Goes to
permanent-exclusion Admitted following permanent exclusion — only shown when pupil.isAddBack is false and school.isIndependent is false (GIAS type id not 11) permanent-exclusion
english-not-first-language Admitted from abroad with English not first language english-not-first-language
child-missing-education Child missing education child-missing-education
pupil-died Pupil has died pupil-died
dual-registered-moved Dual registered or moved school dual-registered-moved
elective-home-education Elective home education elective-home-education
not-on-roll Not on roll — only shown when pupil.isAddBack is false and any of school.isIndependent or school.isOnNotOnRollList is true (GIAS type id 11, or a listed FE college) not-on-roll
permanently-excluded Permanently excluded from current school permanently-excluded
permanently-left-england Permanently left England permanently-left-england-questions
social-care-involvement Social care involvement - including police or prison social-care
life-limiting-illness Terminal or critical illness life-limiting-illness
year-group-change Year group change year-group-change-higher-lower

permanent-exclusion → evidence

Pupil admitted following a permanent exclusion elsewhere.

Question Type Notes
permanent-exclusion-dfe-number FreeText DfE number of the school which permanently excluded the pupil (issue-496 design copy). Blank and malformed answers share one message: "Enter the 7 digit DfE number of the school which permanently excluded the pupil". Only this page's DfE-number question uses that wording; the four sibling DfE-number questions keep theirs. Includes help text linking to Get Information About Schools.
date-pupil-excluded Date When the pupil was excluded.

permanently-excluded → evidence

Pupil permanently excluded from the current school.

Question Type Notes
date-permanently-excluded Date When the pupil was permanently excluded.
permanent-exclusion-dfe-number FreeText (optional) DfE number of the school the pupil went to. Includes help text.

english-not-first-language → english-not-first-language-details

First of two pages for the "admitted from abroad" reason.

Question Type Notes
first-language Radio English / Not known but believed English / Other than English / Not known but believed other / Prefer not to say / Not known.

english-not-first-language-details → evidence

Question Type Notes
country-originally-from Autocomplete (countries) Country the pupil is originally from.
date-pupil-started Date When the pupil started at this school.
date-pupil-started-school-in-england Date When the pupil first started at any school in England.
date-pupil-arrived-in-england Date (optional) When the pupil arrived in England.

child-missing-education → evidence

Question Type Notes
why-removed Radio Ground H (not returned after agreed leave) / Ground I (long absence, no agreed leave or clear reason) of the School Attendance Regulations 2024 / Other (AB#304117). The value is copied into the rules field childMissingEducationGround: other is auto-rejected by seed rule PMIE-OTHER-REJ; Ground H and Ground I fall to PMIE-DEF (Scrutiny).
date-removed-from-roll Date When the pupil was removed from the school roll.

pupil-died → end (terminal)

Question Type Notes
date-removed-from-roll Date When the pupil was removed from the school roll.

No evidence step.


dual-registered-moved → dual-registered-moved-evidence

Question Type Notes
dual-registered-moved-dfe-number FreeText DfE number of the school the pupil's exam results should be transferred to. Includes help text.

dual-registered-moved-evidence → end (terminal, EvidenceUpload)

Question Type Notes
evidence FileUpload (optional) PDF evidence.
additional-comments TextArea (optional) Additional comments, 500 characters.

Both questions are optional and the page has no requireAtLeastOne, so the school can submit with evidence, comments, both or neither (#546).


elective-home-education → evidence

Question Type Notes
date-removed-from-roll Date When the pupil was removed from the school roll.

not-on-roll → not-on-roll-evidence

Reached only when the not-on-roll reason is shown (independent schools, GIAS type id 11 — see conditional visibility).

Question Type Notes
on-school-roll Radio Was {pupilName} on your school roll in the 2025 to 2026 academic year? (Yes / No).

not-on-roll-evidence → end (terminal)

EvidenceUpload page with requireAtLeastOne: true. Both questions are optional individually, but at least one must be answered.

Question Type Notes
evidence FileUpload (optional) PDF, up to 6 files, 10 MB each.
how-evidence-supports TextArea (optional) Explain how the evidence supports removal. 500 char limit.

permanently-left-england-questions → evidence

Question Type Notes
country-moved-to Autocomplete (countries) Country the pupil moved to.
date-removed-from-roll Date When the pupil was removed from the roll.

social-care → evidence

Question Type Notes
social-care-reason Radio (contentKey: true) Social care situation / Police involvement / Detained in prison, remand centre or secure unit for ≥4 months.
sat-exams Radio Has the pupil sat any exams as a year 11 pupil? (Yes / No)

life-limiting-illness → evidence

Question Type Notes
life-limiting-illness-health-issue Radio Terminal illness diagnosis, including some life-limiting conditions / Recent and life changing illness or injury / Critical illness, injury or condition, diagnosed or under investigation for 12 months or more (#513). contentKey: each category has its own evidence requirements block on the next page.
sat-exams Radio Has the pupil sat any exams as a year 11 pupil? (Yes / No)

year-group-change-higher-lower (branching)

Single Radio whose options branch the flow:

Option Goes to
higher year-group-change-higher
lower year-group-change-lower

year-group-change-higher → year-group-change-evidence

Question Type Notes
year-group-higher-moved-to Radio Year 12 / 13.
year-group-higher-dfe-number FreeText DfE number of the school where the pupil was previously reported at the year of KS4.

year-group-change-lower → year-group-change-evidence

Question Type Notes
year-group-lower-moved-to Radio Year 8 / 9 / 10.

year-group-change-evidence → end (terminal)

EvidenceUpload page used only by the year-group-change branch. Both questions are optional here.

Question Type Notes
evidence FileUpload (optional) PDF, up to 6 files, 10 MB each.
how-evidence-supports TextArea (optional) Explain how the evidence supports removal. 500 char limit.

evidence → end (terminal)

Shared EvidenceUpload page reached by most reasons. Both questions are required here (contrast with year-group-change-evidence).

Question Type Notes
evidence FileUpload PDF, up to 6 files, 10 MB each.
how-evidence-supports TextArea Explain how the evidence supports removal. 500 char limit.

Notes

  • Three evidence pages exist. evidence requires both upload and explanation; year-group-change-evidence makes both optional; and not-on-roll-evidence makes both optional but sets requireAtLeastOne: true, so at least one of the two must be provided. Each is used only by its respective branch.
  • Conditional options. Two reasons are gated on the school's type, in opposite polarities.
    • not-on-roll tests pupil.isAddBack is false, and an anyOf of school.isIndependent and school.isOnNotOnRollList, so it is rendered only for independent schools (GIAS establishment type id 11) and for the FE colleges in Web/Data/NotOnRollColleges/not-on-roll-colleges.json, matched on LAESTAB (AB#304119).
    • permanent-exclusion tests pupil.isAddBack is false and school.isIndependent is false, so it is rendered only for schools that are not independent — an independent school cannot have been permanently excluded by a school and cannot action the request. Type 10 (Other Independent Special School) is deliberately treated as not independent (ticket 281165), so it keeps permanent-exclusion. Both reasons use the one fact school.isIndependent, with "is": true or "is": false, so the string 11 is in one class only.
    • Both gates are evaluated server-side by IOptionVisibilityService, which refuses a posted value for a hidden option as well as omitting it from the render; see request-journey.md → Conditional option visibility.
  • pupil-died skips evidence entirely and ends after a single page. dual-registered-moved has its own evidence page where everything is optional.
  • date-removed-from-roll is reused across elective-home-education, pupil-died, and child-missing-education. permanent-exclusion-dfe-number and sat-exams are likewise reused across pages.
  • contentKey: true appears on reason and on social-care's social-care-reason question — these map to CMS content keys.
  • useAsRequestType: true on the reason question means the chosen reason determines the request type recorded for the change request.