Add pupil absence data to school details modal
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 58s

Display test absence percentages (reading, maths, GPS, writing, science)
in a new section in the school modal. Requires database re-import.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Tudor
2026-01-16 09:58:11 +00:00
parent 5bd49d3a03
commit 352eeec2db
3 changed files with 123 additions and 1 deletions

View File

@@ -96,7 +96,14 @@ class SchoolResult(Base):
sen_support_pct = Column(Float)
sen_ehcp_pct = Column(Float)
stability_pct = Column(Float)
# Pupil Absence from Tests
reading_absence_pct = Column(Float)
gps_absence_pct = Column(Float)
maths_absence_pct = Column(Float)
writing_absence_pct = Column(Float)
science_absence_pct = Column(Float)
# Gender Breakdown
rwm_expected_boys_pct = Column(Float)
rwm_expected_girls_pct = Column(Float)
@@ -173,6 +180,12 @@ RESULT_FIELD_MAPPING = {
'sen_support_pct': 'sen_support_pct',
'sen_ehcp_pct': 'sen_ehcp_pct',
'stability_pct': 'stability_pct',
# Absence
'reading_absence_pct': 'reading_absence_pct',
'gps_absence_pct': 'gps_absence_pct',
'maths_absence_pct': 'maths_absence_pct',
'writing_absence_pct': 'writing_absence_pct',
'science_absence_pct': 'science_absence_pct',
# Gender
'rwm_expected_boys_pct': 'rwm_expected_boys_pct',
'rwm_expected_girls_pct': 'rwm_expected_girls_pct',

View File

@@ -42,6 +42,12 @@ COLUMN_MAPPINGS = {
"PSENELK": "sen_support_pct",
"PSENELE": "sen_ehcp_pct",
"PTMOBN": "stability_pct",
# Pupil absence from tests
"PTREAD_AT": "reading_absence_pct",
"PTGPS_AT": "gps_absence_pct",
"PTMAT_AT": "maths_absence_pct",
"PTWRITTA_AD": "writing_absence_pct",
"PTSCITA_AD": "science_absence_pct",
# Gender breakdown
"PTRWM_EXP_B": "rwm_expected_boys_pct",
"PTRWM_EXP_G": "rwm_expected_girls_pct",
@@ -86,6 +92,12 @@ NUMERIC_COLUMNS = [
"sen_support_pct",
"sen_ehcp_pct",
"stability_pct",
# Pupil absence from tests
"reading_absence_pct",
"gps_absence_pct",
"maths_absence_pct",
"writing_absence_pct",
"science_absence_pct",
# Gender breakdown
"rwm_expected_boys_pct",
"rwm_expected_girls_pct",
@@ -331,6 +343,42 @@ METRIC_DEFINITIONS = {
"type": "percentage",
"category": "context",
},
# Pupil Absence from Tests
"reading_absence_pct": {
"name": "Reading Test Absence %",
"short_name": "Reading Absent",
"description": "% of pupils absent from or unable to access the Reading test",
"type": "percentage",
"category": "absence",
},
"gps_absence_pct": {
"name": "GPS Test Absence %",
"short_name": "GPS Absent",
"description": "% of pupils absent from or unable to access the GPS test",
"type": "percentage",
"category": "absence",
},
"maths_absence_pct": {
"name": "Maths Test Absence %",
"short_name": "Maths Absent",
"description": "% of pupils absent from or unable to access the Maths test",
"type": "percentage",
"category": "absence",
},
"writing_absence_pct": {
"name": "Writing Absence %",
"short_name": "Writing Absent",
"description": "% of pupils absent from or disapplied in Writing assessment",
"type": "percentage",
"category": "absence",
},
"science_absence_pct": {
"name": "Science Absence %",
"short_name": "Science Absent",
"description": "% of pupils absent from or disapplied in Science assessment",
"type": "percentage",
"category": "absence",
},
# 3-Year Averages
"rwm_expected_3yr_pct": {
"name": "RWM Expected % (3-Year Avg)",
@@ -398,6 +446,12 @@ RANKING_COLUMNS = [
"eal_pct",
"sen_support_pct",
"stability_pct",
# Absence
"reading_absence_pct",
"gps_absence_pct",
"maths_absence_pct",
"writing_absence_pct",
"science_absence_pct",
# 3-year
"rwm_expected_3yr_pct",
"reading_avg_3yr",