School education
================

Schools across 40 districts over three academic years: management type, infrastructure, teachers, enrolment by grade and gender, and board exam results. Enrolment thins out after grade 8; schools with more trained teachers and working toilets and libraries post better results.

Category: Public Policy
Licence: CC0-1.0
Synthetic data generated by DataStride. Districts are real places; schools and figures are fictional, shaped after the patterns public education statistics show.
Build: 940aea8e3b2c8169

sch_districts (40 rows)
  district_id            INTEGER        [key] District identifier.
  district_name          VARCHAR(40)    District (named after its headquarters city).
  state                  VARCHAR(40)    State.
  urban_share_pct        DECIMAL(5,1)   Share of population in urban areas.

sch_schools (600 rows)
  school_id              INTEGER        [key] School code (UDISE-style, fictional).
  school_name            VARCHAR(80)    School (fictional).
  district_id            INTEGER        -> sch_districts.district_id District.
  management             VARCHAR(20)    Who runs it.
  location               VARCHAR(6)     Urban or rural.
  highest_grade          INTEGER        Highest grade taught.
  has_library            INTEGER        1 if there is a functioning library.
  has_girls_toilet       INTEGER        1 if there is a working girls' toilet.
  has_internet           INTEGER        1 if the school has internet.

sch_teachers (1500 rows)
  teacher_id             INTEGER        [key] Teacher identifier.
  school_id              INTEGER        -> sch_schools.school_id School.
  gender                 VARCHAR(1)     Gender.
  qualification          VARCHAR(20)    Highest teaching qualification.
  is_contract            INTEGER        1 if on a contract rather than permanent.
  years_service          INTEGER        Years in service.

sch_enrolment (5000 rows)
  enrolment_id           INTEGER        [key] Row identifier.
  school_id              INTEGER        -> sch_schools.school_id School.
  academic_year          VARCHAR(7)     Academic year.
  grade                  INTEGER        Grade (only grades the school teaches).
  gender                 VARCHAR(1)     Gender.
  students               INTEGER        Students enrolled. Numbers thin after grade 8.

sch_exam_results (1200 rows)
  result_id              INTEGER        [key] Row identifier.
  school_id              INTEGER        -> sch_schools.school_id School (grades 10 or 12 only).
  academic_year          VARCHAR(7)     Academic year.
  exam                   VARCHAR(8)     Board exam.
  appeared               INTEGER        Students who sat the exam.
  passed                 INTEGER        Students who passed.
