feat(ofsted): fall back to ungraded inspection outcome for school grade
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 18s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 48s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m30s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 1s
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 18s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 48s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m30s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 1s
Ungraded (Section 8) inspections don't assign a fresh grade — the export only gives free text like "School remains Good". Parse that text into a grade (remains Outstanding -> 1, remains Good -> 2, else null) and use it as a last-resort fallback when no graded overall effectiveness exists. Also retain schools that have only an ungraded inspection (no graded date) by coalescing the inspection date, so ~8.5k previously-dropped schools now carry a grade. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -204,7 +204,8 @@ _MAIN_QUERY = text("""
|
||||
LEFT JOIN (
|
||||
SELECT DISTINCT ON (urn)
|
||||
urn,
|
||||
overall_effectiveness AS ofsted_grade,
|
||||
-- Fall back to the ungraded-inspection grade when no graded grade exists.
|
||||
COALESCE(overall_effectiveness, ungraded_grade) AS ofsted_grade,
|
||||
inspection_date AS ofsted_date,
|
||||
framework AS ofsted_framework
|
||||
FROM marts.fact_ofsted_inspection
|
||||
|
||||
@@ -133,6 +133,10 @@ class FactOfstedInspection(Base):
|
||||
leadership_management = Column(Integer)
|
||||
early_years_provision = Column(Integer)
|
||||
sixth_form_provision = Column(Integer)
|
||||
# Ungraded (Section 8) inspection: raw outcome text and the grade parsed from
|
||||
# it (fallback for schools with no graded overall effectiveness).
|
||||
ungraded_outcome = Column(String(100))
|
||||
ungraded_grade = Column(Integer)
|
||||
rc_safeguarding_met = Column(Boolean)
|
||||
rc_inclusion = Column(Integer)
|
||||
rc_curriculum_teaching = Column(Integer)
|
||||
|
||||
Reference in New Issue
Block a user