/** * Plain-language metric labels and explanations. * Single source of truth for all metric display strings. */ export interface MetricExplanation { label: string; plain: string; detail?: string; } export const METRIC_EXPLANATIONS: Record = { rwm_expected_pct: { label: 'Reading, Writing & Maths', plain: '% of pupils achieving the expected standard in all three subjects at age 11', detail: 'The national average is around 60%. Higher means more pupils reached the expected level.', }, rwm_high_pct: { label: 'Higher Standard — Reading, Writing & Maths', plain: '% of pupils exceeding the expected level in all three subjects', detail: 'A more demanding threshold. The national average is around 8%.', }, reading_expected_pct: { label: 'Reading — Expected Standard', plain: '% of pupils achieving the expected standard in reading at age 11', }, writing_expected_pct: { label: 'Writing — Expected Standard', plain: '% of pupils achieving the expected standard in writing at age 11', }, maths_expected_pct: { label: 'Maths — Expected Standard', plain: '% of pupils achieving the expected standard in maths at age 11', }, reading_high_pct: { label: 'Reading — Higher Standard', plain: '% of pupils exceeding the expected level in reading', }, writing_high_pct: { label: 'Writing — Higher Standard', plain: '% of pupils exceeding the expected level in writing', }, maths_high_pct: { label: 'Maths — Higher Standard', plain: '% of pupils exceeding the expected level in maths', }, gps_expected_pct: { label: 'Grammar & Spelling', plain: '% of pupils achieving the expected standard in grammar, punctuation & spelling', }, science_expected_pct: { label: 'Science', plain: '% of pupils achieving the expected standard in science', }, reading_progress: { label: 'Reading Progress', plain: 'How much pupils improved in reading compared to similar schools', detail: '0 = national average. Positive means better-than-average progress from Year 2 to Year 6.', }, writing_progress: { label: 'Writing Progress', plain: 'How much pupils improved in writing compared to similar schools', detail: '0 = national average. Positive means better-than-average progress from Year 2 to Year 6.', }, maths_progress: { label: 'Maths Progress', plain: 'How much pupils improved in maths compared to similar schools', detail: '0 = national average. Positive means better-than-average progress from Year 2 to Year 6.', }, reading_avg_score: { label: 'Reading Average Score', plain: 'Average scaled score in the reading test (range 80–120, average = 100)', }, maths_avg_score: { label: 'Maths Average Score', plain: 'Average scaled score in the maths test (range 80–120, average = 100)', }, gps_avg_score: { label: 'Grammar & Spelling Average Score', plain: 'Average scaled score in the grammar, punctuation & spelling test', }, overall_absence_pct: { label: 'Absence Rate', plain: '% of school sessions missed due to any reason', detail: 'Lower is better. The national average is around 5%.', }, persistent_absence_pct: { label: 'Persistent Absence', plain: '% of pupils missing 10% or more of school sessions', detail: 'Lower is better. Persistent absence can significantly affect attainment.', }, rwm_expected_disadvantaged_pct: { label: 'Disadvantaged Pupils — Reading, Writing & Maths', plain: '% of disadvantaged pupils achieving the expected standard in all three subjects', }, disadvantaged_gap: { label: 'Disadvantaged Gap', plain: 'Difference in attainment between disadvantaged pupils and their peers', detail: 'A smaller gap means the school is doing more to support disadvantaged pupils.', }, sen_support_pct: { label: 'SEN Support', plain: '% of pupils receiving SEN (Special Educational Needs) support without a formal plan', detail: 'These pupils need extra help but do not yet have an Education, Health and Care Plan (EHCP).', }, sen_ehcp_pct: { label: 'Education, Health and Care Plan (EHCP)', plain: '% of pupils with a formal EHCP — a legal plan for pupils with significant additional needs', }, eal_pct: { label: 'English as an Additional Language', plain: '% of pupils whose first language is not English', }, idaci_decile: { label: 'Deprivation (IDACI)', plain: 'How deprived the area around the school is. Decile 1 = most deprived 10% of areas in England.', detail: 'IDACI stands for Income Deprivation Affecting Children Index. It measures the proportion of children living in low-income households in an area.', }, // ── KS4 / GCSE metrics ──────────────────────────────────────────────── attainment_8_score: { label: 'Attainment 8', plain: 'Average grade across a pupil\'s best 8 GCSEs, including English and Maths', detail: 'Each GCSE grade is converted to a points score (grade 9 = 9 points, grade 1 = 1 point). The national average is around 46.', }, progress_8_score: { label: 'Progress 8', plain: 'How much pupils improved from their primary school results to GCSE, compared to similar pupils nationally', detail: '0 = national average. Positive means better-than-expected progress; negative means lower-than-expected. A score above +0.5 is considered well above average.', }, english_maths_standard_pass_pct: { label: 'English & Maths — Grade 4+ (Standard Pass)', plain: '% of pupils achieving at least a grade 4 in both English and Maths', detail: 'Grade 4 is the minimum "standard pass". Employers and colleges often require grade 4 in English and Maths.', }, english_maths_strong_pass_pct: { label: 'English & Maths — Grade 5+ (Strong Pass)', plain: '% of pupils achieving at least a grade 5 in both English and Maths', detail: 'Grade 5 is a "strong pass". Many sixth forms and universities expect grade 5 in English and Maths.', }, ebacc_entry_pct: { label: 'EBacc Entry', plain: '% of pupils who entered the English Baccalaureate — a set of GCSE subjects covering English, Maths, Sciences, a Language, and Humanities', detail: 'EBacc entry keeps academic options open post-16. It is not a separate qualification.', }, ebacc_standard_pass_pct: { label: 'EBacc — Grade 4+ (Standard Pass)', plain: '% of pupils achieving grade 4 or above across all EBacc subjects', }, ebacc_strong_pass_pct: { label: 'EBacc — Grade 5+ (Strong Pass)', plain: '% of pupils achieving grade 5 or above across all EBacc subjects', }, ebacc_avg_score: { label: 'EBacc Average Score', plain: 'Average points score across all EBacc subject entries', }, gcse_grade_91_pct: { label: 'GCSE Grade 9–1 %', plain: '% of GCSE entries where a pupil achieved a grade between 9 (highest) and 1', }, }; /** * Returns a plain-English band label for a KS2 progress score. * Progress scores are centred at 0 (= national average). */ export function progressBand(score: number): string { if (score > 3) return 'well above average'; if (score > 1) return 'above average'; if (score >= -1) return 'around average'; if (score >= -3) return 'below average'; return 'well below average'; }