diff --git a/nextjs-app/components/EditorialSection.tsx b/nextjs-app/components/EditorialSection.tsx index 318361c..0cbc4af 100644 --- a/nextjs-app/components/EditorialSection.tsx +++ b/nextjs-app/components/EditorialSection.tsx @@ -13,17 +13,17 @@ export function EditorialSection({ totalSchools, localAuthorityCount }: Editoria
About school data
-

Making UK school performance data actually readable

+

Making England's school performance data actually readable

- School performance data in England is rich but fragmented. The Department for Education publishes - Key Stage 2 SATs, GCSE attainment, Ofsted outcomes, progress scores, admissions figures and - demographics — each in its own table, each with its own jargon. + School performance data in England is rich but fragmented. The Department for Education and Ofsted + publish Key Stage 2 SATs, GCSE attainment, inspection outcomes, progress scores, admissions figures + and demographics — each in its own table, each with its own jargon.

SchoolCompare brings it all into one place. Every school page shows performance against the national average, explains what the numbers mean, and lets you shortlist schools side by side. Built for parents, governors, journalists, and anyone who wants to understand a school without reading a - 40-page inspection report. + full inspection report.

diff --git a/nextjs-app/components/HomeView.module.css b/nextjs-app/components/HomeView.module.css index 81e6397..cbe4fc0 100644 --- a/nextjs-app/components/HomeView.module.css +++ b/nextjs-app/components/HomeView.module.css @@ -720,10 +720,13 @@ .miniRowHead { display: flex; justify-content: space-between; - font-size: 0.48rem; + align-items: baseline; + gap: 0.2rem; + font-size: 0.44rem; color: var(--text-muted, #6d685f); text-transform: uppercase; - letter-spacing: 0.04em; + letter-spacing: 0.01em; + white-space: nowrap; } .miniRowHead strong { @@ -869,28 +872,77 @@ color: var(--text-primary, #1a1612); } -.ofstedBadge { +.ofstedFramework { align-self: flex-start; - padding: 0.2rem 0.55rem; + padding: 0.15rem 0.5rem; border-radius: 4px; - background: rgba(45, 125, 125, 0.12); - color: var(--accent-teal, #2d7d7d); - font-size: 0.55rem; + background: rgba(90, 58, 110, 0.12); + color: #5a3a6e; + font-size: 0.5rem; font-weight: 700; letter-spacing: 0.05em; + text-transform: uppercase; } -.ofstedVerdict { - font-family: var(--font-playfair), 'Playfair Display', serif; - font-size: 1.05rem; +.rcList { + display: flex; + flex-direction: column; + gap: 0.3rem; +} + +.rcRow { + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; +} + +.rcArea { + font-size: 0.62rem; + color: var(--text-secondary, #4a453d); +} + +.rcChip { + padding: 0.1rem 0.4rem; + border-radius: 3px; + font-size: 0.52rem; font-weight: 700; - line-height: 1.2; - color: var(--text-primary, #1a1612); + letter-spacing: 0.03em; + white-space: nowrap; + flex-shrink: 0; } -.ofstedVerdict em { +.rcChipGood { + background: rgba(45, 125, 125, 0.12); color: var(--accent-teal, #2d7d7d); - font-style: normal; +} + +.rcChipNeutral { + background: var(--accent-gold-bg, rgba(180, 150, 40, 0.12)); + color: var(--accent-gold-text, #7a6800); +} + +/* Safeguarding is a separate binary met/not-met judgement, not a graded area, + so it sits below the five-point list behind a divider with its own chip. */ +.rcSafeguarding { + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + margin-top: 0.05rem; + padding-top: 0.35rem; + border-top: 1px dashed var(--border-color, #e5dfd5); +} + +.rcSep { + color: var(--text-muted, #8a847a); + font-style: italic; +} + +.rcChipMet { + background: transparent; + color: var(--accent-teal, #2d7d7d); + border: 1px solid rgba(45, 125, 125, 0.4); } .ofstedMeta { diff --git a/nextjs-app/components/HomeView.tsx b/nextjs-app/components/HomeView.tsx index 945770b..4662a26 100644 --- a/nextjs-app/components/HomeView.tsx +++ b/nextjs-app/components/HomeView.tsx @@ -261,7 +261,7 @@ export function HomeView({ initialSchools, filters, totalSchools, howItWorks, ed

Every school in England, compared. diff --git a/nextjs-app/components/HowItWorksSection.tsx b/nextjs-app/components/HowItWorksSection.tsx index ae22fc2..75a3783 100644 --- a/nextjs-app/components/HowItWorksSection.tsx +++ b/nextjs-app/components/HowItWorksSection.tsx @@ -5,15 +5,26 @@ 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: 73, nat: 75 }, - { subj: 'Writing', exp: 81, exc: 15, nat: 72 }, - { subj: 'Maths', exp: 85, exc: 47, nat: 74 }, + { 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 }, - { label: 'Reading progress', a: '+2.1', b: '+0.4', 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 ( @@ -29,7 +40,7 @@ export function HowItWorksSection() {
Primary · Year 6 · Key Stage 2 SATs
- {miniCascade.map(({ subj, exp, exc, nat }) => ( + {miniCascade.map(({ subj, exp, exc, nat, excLabel }) => (
{subj}
Expected{exp}%
@@ -37,7 +48,7 @@ export function HowItWorksSection() {
{nat}%
-
Exceeding{exc}%
+
{excLabel}{exc}%
@@ -49,15 +60,15 @@ export function HowItWorksSection() {
Secondary · Year 11 · GCSE Attainment 8
-
This schoolNational avg 50.2
+
This schoolNational avg 45.9
-
-
+
+
-
62.4
-
+12.2 vs national
+
54.8
+
+8.9 vs national
@@ -77,15 +88,26 @@ export function HowItWorksSection() { Latest Ofsted inspection
- OUTSTANDING -
Rated Outstanding at last inspection.
-
Full inspection · March 2024
+ 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
-

Current grade, inspection date, and a plain-English headline — without opening a 40-page report.

+

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.