feat(pipeline): extract Ofsted report-card judgements (rc_* columns)
Wires the tap TODO in stg_ofsted_inspections.sql: maps the 7 confirmed report-card MI columns (Safeguarding standards, Inclusion, Curriculum and teaching, Achievement, Attendance and behaviour, Personal development and wellbeing, Leadership and governance) into rc_* fields, parsed via the new parse_report_card_grade macro against real sampled grade values (Exceptional/Strong standard/Expected standard/Needs attention/Urgent improvement). rc_safeguarding_met becomes boolean from Met/Not met. rc_early_years/rc_sixth_form have no MI column yet and are intentionally omitted from COLUMN_PRIORITY, staying NULL. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
This commit is contained in:
@@ -33,17 +33,20 @@ renamed as (
|
||||
nullif(trim(ungraded_outcome), 'NULL') as ungraded_outcome,
|
||||
{{ parse_ungraded_outcome('ungraded_outcome') }}::integer as ungraded_grade,
|
||||
|
||||
-- Report Card fields (post-Nov 2025 framework)
|
||||
-- TODO: add rc_* columns to tap-uk-ofsted schema once CSV column names are confirmed
|
||||
null::text as rc_safeguarding_met,
|
||||
null::text as rc_inclusion,
|
||||
null::text as rc_curriculum_teaching,
|
||||
null::text as rc_achievement,
|
||||
null::text as rc_attendance_behaviour,
|
||||
null::text as rc_personal_development,
|
||||
null::text as rc_leadership_governance,
|
||||
null::text as rc_early_years,
|
||||
null::text as rc_sixth_form,
|
||||
-- Report Card fields (post-Nov 2025 framework), 5-point scale:
|
||||
-- 1 Exceptional · 2 Strong standard · 3 Expected standard
|
||||
-- · 4 Needs attention · 5 Urgent improvement
|
||||
(lower(trim(nullif(rc_safeguarding_met, 'NULL'))) = 'met') as rc_safeguarding_met,
|
||||
{{ parse_report_card_grade('rc_inclusion') }}::integer as rc_inclusion,
|
||||
{{ parse_report_card_grade('rc_curriculum_teaching') }}::integer as rc_curriculum_teaching,
|
||||
{{ parse_report_card_grade('rc_achievement') }}::integer as rc_achievement,
|
||||
{{ parse_report_card_grade('rc_attendance_behaviour') }}::integer as rc_attendance_behaviour,
|
||||
{{ parse_report_card_grade('rc_personal_development') }}::integer as rc_personal_development,
|
||||
{{ parse_report_card_grade('rc_leadership_governance') }}::integer as rc_leadership_governance,
|
||||
-- No MI column exists for these yet (see tap.py); the tap never
|
||||
-- emits rc_early_years/rc_sixth_form, so these stay NULL.
|
||||
null::integer as rc_early_years,
|
||||
null::integer as rc_sixth_form,
|
||||
|
||||
report_url
|
||||
from source
|
||||
|
||||
Reference in New Issue
Block a user