refactor: expand RWM to "Reading, Writing & Maths" in user-facing text
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 24s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 52s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m51s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 1s

Expand the abbreviation in metric names (backend schemas), the home page
sort dropdown, README/QA docs, and pipeline comments. Short_name fields
and the compact row/map-card labels remain abbreviated for space.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Tudor Sitaru
2026-04-07 15:53:52 +01:00
parent 5b025b98bd
commit a562f408d2
6 changed files with 20 additions and 20 deletions
+2 -2
View File
@@ -26,7 +26,7 @@ The application tracks these Key Stage 2 performance indicators:
| **Reading Expected %** | Percentage meeting expected standard in reading | | **Reading Expected %** | Percentage meeting expected standard in reading |
| **Writing Expected %** | Percentage meeting expected standard in writing | | **Writing Expected %** | Percentage meeting expected standard in writing |
| **Maths Expected %** | Percentage meeting expected standard in maths | | **Maths Expected %** | Percentage meeting expected standard in maths |
| **RWM Combined %** | Percentage meeting expected standard in all three subjects | | **Reading, Writing & Maths Combined %** | Percentage meeting expected standard in all three subjects |
## Quick Start ## Quick Start
@@ -131,7 +131,7 @@ If using your own CSV data, ensure it includes these columns (or similar):
| READPROG | Float | Reading progress score | | READPROG | Float | Reading progress score |
| WRITPROG | Float | Writing progress score | | WRITPROG | Float | Writing progress score |
| MATPROG | Float | Maths progress score | | MATPROG | Float | Maths progress score |
| PTRWM_EXP | Float | % meeting expected standard in RWM | | PTRWM_EXP | Float | % meeting expected standard in reading, writing & maths |
| PTREAD_EXP | Float | % meeting expected standard in reading | | PTREAD_EXP | Float | % meeting expected standard in reading |
| PTWRIT_EXP | Float | % meeting expected standard in writing | | PTWRIT_EXP | Float | % meeting expected standard in writing |
| PTMAT_EXP | Float | % meeting expected standard in maths | | PTMAT_EXP | Float | % meeting expected standard in maths |
+10 -10
View File
@@ -142,7 +142,7 @@ NULL_VALUES = ["SUPP", "NE", "NA", "NP", "NEW", "LOW", ""]
METRIC_DEFINITIONS = { METRIC_DEFINITIONS = {
# Expected Standard # Expected Standard
"rwm_expected_pct": { "rwm_expected_pct": {
"name": "RWM Combined %", "name": "Reading, Writing & Maths Combined %",
"short_name": "RWM %", "short_name": "RWM %",
"description": "% meeting expected standard in reading, writing and maths", "description": "% meeting expected standard in reading, writing and maths",
"type": "percentage", "type": "percentage",
@@ -185,9 +185,9 @@ METRIC_DEFINITIONS = {
}, },
# Higher Standard # Higher Standard
"rwm_high_pct": { "rwm_high_pct": {
"name": "RWM Combined Higher %", "name": "Reading, Writing & Maths Combined Higher %",
"short_name": "RWM Higher %", "short_name": "RWM Higher %",
"description": "% achieving higher standard in RWM combined", "description": "% achieving higher standard in reading, writing & maths combined",
"type": "percentage", "type": "percentage",
"category": "higher", "category": "higher",
}, },
@@ -265,28 +265,28 @@ METRIC_DEFINITIONS = {
}, },
# Gender Performance # Gender Performance
"rwm_expected_boys_pct": { "rwm_expected_boys_pct": {
"name": "RWM Expected % (Boys)", "name": "Reading, Writing & Maths Expected % (Boys)",
"short_name": "Boys RWM %", "short_name": "Boys RWM %",
"description": "% of boys meeting expected standard", "description": "% of boys meeting expected standard",
"type": "percentage", "type": "percentage",
"category": "gender", "category": "gender",
}, },
"rwm_expected_girls_pct": { "rwm_expected_girls_pct": {
"name": "RWM Expected % (Girls)", "name": "Reading, Writing & Maths Expected % (Girls)",
"short_name": "Girls RWM %", "short_name": "Girls RWM %",
"description": "% of girls meeting expected standard", "description": "% of girls meeting expected standard",
"type": "percentage", "type": "percentage",
"category": "gender", "category": "gender",
}, },
"rwm_high_boys_pct": { "rwm_high_boys_pct": {
"name": "RWM Higher % (Boys)", "name": "Reading, Writing & Maths Higher % (Boys)",
"short_name": "Boys Higher %", "short_name": "Boys Higher %",
"description": "% of boys at higher standard", "description": "% of boys at higher standard",
"type": "percentage", "type": "percentage",
"category": "gender", "category": "gender",
}, },
"rwm_high_girls_pct": { "rwm_high_girls_pct": {
"name": "RWM Higher % (Girls)", "name": "Reading, Writing & Maths Higher % (Girls)",
"short_name": "Girls Higher %", "short_name": "Girls Higher %",
"description": "% of girls at higher standard", "description": "% of girls at higher standard",
"type": "percentage", "type": "percentage",
@@ -294,14 +294,14 @@ METRIC_DEFINITIONS = {
}, },
# Disadvantaged Performance # Disadvantaged Performance
"rwm_expected_disadvantaged_pct": { "rwm_expected_disadvantaged_pct": {
"name": "RWM Expected % (Disadvantaged)", "name": "Reading, Writing & Maths Expected % (Disadvantaged)",
"short_name": "Disadvantaged %", "short_name": "Disadvantaged %",
"description": "% of disadvantaged pupils meeting expected", "description": "% of disadvantaged pupils meeting expected",
"type": "percentage", "type": "percentage",
"category": "equity", "category": "equity",
}, },
"rwm_expected_non_disadvantaged_pct": { "rwm_expected_non_disadvantaged_pct": {
"name": "RWM Expected % (Non-Disadvantaged)", "name": "Reading, Writing & Maths Expected % (Non-Disadvantaged)",
"short_name": "Non-Disadv %", "short_name": "Non-Disadv %",
"description": "% of non-disadvantaged pupils meeting expected", "description": "% of non-disadvantaged pupils meeting expected",
"type": "percentage", "type": "percentage",
@@ -381,7 +381,7 @@ METRIC_DEFINITIONS = {
}, },
# 3-Year Averages # 3-Year Averages
"rwm_expected_3yr_pct": { "rwm_expected_3yr_pct": {
"name": "RWM Expected % (3-Year Avg)", "name": "Reading, Writing & Maths Expected % (3-Year Avg)",
"short_name": "RWM 3yr %", "short_name": "RWM 3yr %",
"description": "3-year average % meeting expected", "description": "3-year average % meeting expected",
"type": "percentage", "type": "percentage",
+1 -1
View File
@@ -53,7 +53,7 @@
### Rankings Page ### Rankings Page
- [ ] Rankings page loads with SSR - [ ] Rankings page loads with SSR
- [ ] Default metric displays (RWM Expected) - [ ] Default metric displays (Reading, Writing & Maths Expected)
- [ ] Metric selector updates rankings - [ ] Metric selector updates rankings
- [ ] Area filter updates rankings - [ ] Area filter updates rankings
- [ ] Year filter updates rankings - [ ] Year filter updates rankings
+2 -2
View File
@@ -212,8 +212,8 @@ export function HomeView({ initialSchools, filters, totalSchools }: HomeViewProp
className={styles.sortSelect} className={styles.sortSelect}
> >
<option value="default">Sort: Relevance</option> <option value="default">Sort: Relevance</option>
{(!isSecondaryView || isMixedView) && <option value="rwm_desc">Highest R, W &amp; M %</option>} {(!isSecondaryView || isMixedView) && <option value="rwm_desc">Highest Reading, Writing &amp; Maths %</option>}
{(!isSecondaryView || isMixedView) && <option value="rwm_asc">Lowest R, W &amp; M %</option>} {(!isSecondaryView || isMixedView) && <option value="rwm_asc">Lowest Reading, Writing &amp; Maths %</option>}
{(isSecondaryView || isMixedView) && <option value="att8_desc">Highest Attainment 8</option>} {(isSecondaryView || isMixedView) && <option value="att8_desc">Highest Attainment 8</option>}
{(isSecondaryView || isMixedView) && <option value="att8_asc">Lowest Attainment 8</option>} {(isSecondaryView || isMixedView) && <option value="att8_asc">Lowest Attainment 8</option>}
{isLocationSearch && <option value="distance">Nearest first</option>} {isLocationSearch && <option value="distance">Nearest first</option>}
@@ -484,12 +484,12 @@ _LEGACY_KS2_COLUMN_MAP = {
"PTREAD_AT": "reading_absence_pct", "PTREAD_AT": "reading_absence_pct",
"PTMAT_AT": "maths_absence_pct", "PTMAT_AT": "maths_absence_pct",
"PTGPS_AT": "gps_absence_pct", "PTGPS_AT": "gps_absence_pct",
# Gender breakdown for RWM # Gender breakdown for Reading, Writing & Maths
"PTRWM_EXP_B": "rwm_expected_boys_pct", "PTRWM_EXP_B": "rwm_expected_boys_pct",
"PTRWM_HIGH_B": "rwm_high_boys_pct", "PTRWM_HIGH_B": "rwm_high_boys_pct",
"PTRWM_EXP_G": "rwm_expected_girls_pct", "PTRWM_EXP_G": "rwm_expected_girls_pct",
"PTRWM_HIGH_G": "rwm_high_girls_pct", "PTRWM_HIGH_G": "rwm_high_girls_pct",
# Disadvantaged breakdown for RWM # Disadvantaged breakdown for Reading, Writing & Maths
"PTRWM_EXP_FSM6CLA1A": "rwm_expected_disadvantaged_pct", "PTRWM_EXP_FSM6CLA1A": "rwm_expected_disadvantaged_pct",
"PTRWM_EXP_NotFSM6CLA1A": "rwm_expected_non_disadvantaged_pct", "PTRWM_EXP_NotFSM6CLA1A": "rwm_expected_non_disadvantaged_pct",
"DIFFN_RWM_EXP": "disadvantaged_gap", "DIFFN_RWM_EXP": "disadvantaged_gap",
@@ -18,7 +18,7 @@ pivoted as (
cast(trim(school_urn) as integer) as urn, cast(trim(school_urn) as integer) as urn,
cast(trim(time_period) as integer) as year, cast(trim(time_period) as integer) as year,
-- RWM combined (All pupils / Total) -- Reading, Writing & Maths combined (All pupils / Total)
max(case when subject = 'Reading, writing and maths' max(case when subject = 'Reading, writing and maths'
and breakdown_topic = 'All pupils' and breakdown = 'Total' and breakdown_topic = 'All pupils' and breakdown = 'Total'
then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_pct, then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_pct,
@@ -96,7 +96,7 @@ pivoted as (
and breakdown_topic = 'All pupils' and breakdown = 'Total' and breakdown_topic = 'All pupils' and breakdown = 'Total'
then {{ safe_numeric('absent_or_not_able_to_access_percent') }} end) as science_absence_pct, then {{ safe_numeric('absent_or_not_able_to_access_percent') }} end) as science_absence_pct,
-- Gender breakdown for RWM -- Gender breakdown for Reading, Writing & Maths
max(case when subject = 'Reading, writing and maths' and breakdown = 'Boys' max(case when subject = 'Reading, writing and maths' and breakdown = 'Boys'
then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_boys_pct, then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_boys_pct,
max(case when subject = 'Reading, writing and maths' and breakdown = 'Boys' max(case when subject = 'Reading, writing and maths' and breakdown = 'Boys'
@@ -106,7 +106,7 @@ pivoted as (
max(case when subject = 'Reading, writing and maths' and breakdown = 'Girls' max(case when subject = 'Reading, writing and maths' and breakdown = 'Girls'
then {{ safe_numeric('higher_standard_pupil_percent') }} end) as rwm_high_girls_pct, then {{ safe_numeric('higher_standard_pupil_percent') }} end) as rwm_high_girls_pct,
-- Disadvantaged breakdown for RWM -- Disadvantaged breakdown for Reading, Writing & Maths
max(case when subject = 'Reading, writing and maths' and breakdown = 'Disadvantaged' max(case when subject = 'Reading, writing and maths' and breakdown = 'Disadvantaged'
then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_disadvantaged_pct, then {{ safe_numeric('expected_standard_pupil_percent') }} end) as rwm_expected_disadvantaged_pct,
max(case when subject = 'Reading, writing and maths' and breakdown = 'Not disadvantaged' max(case when subject = 'Reading, writing and maths' and breakdown = 'Not disadvantaged'