// Server component: pure markup, no client state. // Rendered into HomeView via a slot prop so its JSX doesn't bloat the // HomeView client bundle. import styles from './HomeView.module.css'; export function HowItWorksSection() { // "exc" is the school's above-expected result. DfE names this differently // by subject: "higher standard" for the reading and maths tests, "greater // depth" for teacher-assessed writing. "nat" is the national expected %. const miniCascade = [ { subj: 'Reading', exp: 96, exc: 44, nat: 75, excLabel: 'Higher std' }, { subj: 'Writing', exp: 81, exc: 26, nat: 72, excLabel: 'Greater depth' }, { subj: 'Maths', exp: 85, exc: 41, nat: 74, excLabel: 'Higher std' }, ]; const compareRows = [ { label: 'Reading, Writing & Maths', a: '70%', b: '64%', aHi: true }, { label: 'Higher standard (RWM)', a: '13%', b: '6%', aHi: true }, { label: 'Ofsted', a: 'Outstanding', b: 'Good', aHi: true }, ]; // Report card (Ofsted's framework from Nov 2025): one rating per area of // school life on a five-point scale. Safeguarding is judged separately, as a // binary met/not-met outcome — kept out of this list and shown on its own. const reportCard: Array<{ area: string; grade: string; good: boolean }> = [ { area: 'Achievement', grade: 'Strong', good: true }, { area: 'Curriculum & teaching', grade: 'Expected standard', good: false }, { area: 'Attendance & behaviour', grade: 'Strong', good: true }, ]; return (

What you'll see on every school

Primary or secondary — the page adapts to the phase
{/* Card 1 — Performance */}
Primary · Year 6 · Key Stage 2 SATs
{miniCascade.map(({ subj, exp, exc, nat, excLabel }) => (
{subj}
Expected{exp}%
{nat}%
{excLabel}{exc}%
))}
Secondary · Year 11 · GCSE Attainment 8
This schoolNational avg 45.9
54.8
+8.9 vs national
Performance
Results against the national average

For primary schools, each subject's Expected and Exceeding percentages side by side. For secondary schools, GCSE Attainment 8 with the national benchmark overlaid.

{/* Card 2 — Ofsted */}
Latest Ofsted inspection
Report card · five-point scale
{reportCard.map(({ area, grade, good }) => (
{area} {grade}
))}
Safeguarding · separate check Met
Full inspection · March 2026
Judgement
Ofsted at a glance

Since November 2025, Ofsted rates each area of school life on a five-point scale rather than one overall word. We show every area and the inspection date — and, for schools not yet reinspected, the older overall grade they still carry.

{/* Card 3 — Compare */}
Metric
Our Lady
Queen of Heaven
St Mary's
Catholic Primary
{compareRows.map(({ label, a, b, aHi }) => (
{label} {a} {b}
))}
+ pin up to 5 schools
Compare
Side-by-side shortlists

Pin up to five schools and every metric aligns in the same columns — works for primary and secondary alike.

); }