All checks were successful
Build and Push Docker Images / Build Backend (FastAPI) (push) Successful in 13s
Build and Push Docker Images / Build Frontend (Next.js) (push) Successful in 50s
Build and Push Docker Images / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 1m6s
Build and Push Docker Images / Trigger Portainer Update (push) Successful in 0s
GIAS provides 'Not Applicable' (capital A) but the check used 'Not applicable', so the case-sensitive != matched true and skipped the age-range inference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
58 lines
1.8 KiB
SQL
58 lines
1.8 KiB
SQL
-- Mart: Canonical school dimension — one row per active URN
|
|
|
|
with schools as (
|
|
select * from {{ ref('stg_gias_establishments') }}
|
|
)
|
|
|
|
{% set ofsted_relation = adapter.get_relation(
|
|
database=target.database,
|
|
schema=target.schema,
|
|
identifier='int_ofsted_latest'
|
|
) %}
|
|
|
|
select
|
|
s.urn,
|
|
s.local_authority_code * 1000 + s.establishment_number as laestab,
|
|
s.school_name,
|
|
case
|
|
when s.phase is not null and lower(s.phase) != 'not applicable' then s.phase
|
|
when s.statutory_high_age is not null and s.statutory_high_age <= 11 then 'Primary'
|
|
when s.statutory_low_age is not null and s.statutory_low_age >= 11 then 'Secondary'
|
|
when s.statutory_low_age is not null and s.statutory_high_age is not null
|
|
and s.statutory_low_age < 11 and s.statutory_high_age > 11 then 'All-through'
|
|
else s.phase
|
|
end as phase,
|
|
s.school_type,
|
|
s.academy_trust_name,
|
|
s.academy_trust_uid,
|
|
s.religious_character,
|
|
s.gender,
|
|
s.statutory_low_age || '-' || s.statutory_high_age as age_range,
|
|
s.capacity,
|
|
s.total_pupils,
|
|
concat_ws(' ', s.head_title, s.head_first_name, s.head_last_name) as headteacher_name,
|
|
s.website,
|
|
s.telephone,
|
|
s.open_date,
|
|
s.close_date,
|
|
s.status,
|
|
s.nursery_provision,
|
|
s.admissions_policy,
|
|
|
|
-- Latest Ofsted (populated after monthly Ofsted pipeline runs)
|
|
{% if ofsted_relation is not none %}
|
|
o.overall_effectiveness as ofsted_grade,
|
|
o.inspection_date as ofsted_date,
|
|
o.framework as ofsted_framework
|
|
{% else %}
|
|
null::text as ofsted_grade,
|
|
null::date as ofsted_date,
|
|
null::text as ofsted_framework
|
|
{% endif %}
|
|
|
|
from schools s
|
|
{% if ofsted_relation is not none %}
|
|
left join {{ ref('int_ofsted_latest') }} o on s.urn = o.urn
|
|
{% endif %}
|
|
where s.status = 'Open'
|