{"id":51480662,"url":"https://github.com/mchenryspagg/district-education-performance-analysis","last_synced_at":"2026-07-07T01:30:38.291Z","repository":{"id":365690982,"uuid":"1273293974","full_name":"mchenryspagg/district-education-performance-analysis","owner":"mchenryspagg","description":"A fictional district education performance was analysed using Power BI to build an interactive dashboard to consolidate disparate data from disconnected spreadsheets  into a single analytical model, transitioning the district from relying on anecdotal assumptions to evidence-based decision-making.","archived":false,"fork":false,"pushed_at":"2026-06-18T12:19:24.000Z","size":2349,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T13:24:40.873Z","etag":null,"topics":["data","data-analysis","data-modeling","data-visualization","dax-query","excel","power-bi","power-query-interactive-dashboard-visualization","relational-model"],"latest_commit_sha":null,"homepage":"https://sites.google.com/view/mchenrys-portfolio/data-analysis-projects/district-education-performance-analysis","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mchenryspagg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-18T11:37:49.000Z","updated_at":"2026-06-18T12:46:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mchenryspagg/district-education-performance-analysis","commit_stats":null,"previous_names":["mchenryspagg/district-education-performance-analysis"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/mchenryspagg/district-education-performance-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mchenryspagg%2Fdistrict-education-performance-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mchenryspagg%2Fdistrict-education-performance-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mchenryspagg%2Fdistrict-education-performance-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mchenryspagg%2Fdistrict-education-performance-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mchenryspagg","download_url":"https://codeload.github.com/mchenryspagg/district-education-performance-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mchenryspagg%2Fdistrict-education-performance-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35211553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data","data-analysis","data-modeling","data-visualization","dax-query","excel","power-bi","power-query-interactive-dashboard-visualization","relational-model"],"created_at":"2026-07-07T01:30:29.297Z","updated_at":"2026-07-07T01:30:38.147Z","avatar_url":"https://github.com/mchenryspagg.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Education Performance — Data Analysis Report\n\n*Prepared for: District Education Leadership · Scope: 10 schools, 67,786 enrollments, 2023 Term 1 – 2024 Term 1*\n\n---\n\n## 1. Project Requirement\n\nThe district oversees **10 schools (5 Primary and 5 secondary)** across **10 different states**, and tracks four areas of day‑to‑day operation in separate records: student **attendance**, **assessment** results, **enrollment** against targets, and **teacher lesson delivery**. Because these records lived in disconnected spreadsheets, leadership could not easily answer cross‑cutting questions such as *\"which schools are struggling, and in what way?\"* or *\"do students who attend more actually perform better?\"*\n\nThis project was commissioned to **bring the four data sources together into a single analytical model and an interactive dashboard** that reports the district's standard performance indicators, makes it easy to compare schools, and surfaces the students and institutions most in need of support — so that decisions for the academic year are based on evidence rather than anecdote.\n\n---\n\n## 2. Questions the Analysis Set Out to Answer\n\n1. **Attendance** — How regularly are students attending, and how many are *chronically* absent (a known early‑warning sign)?\n2. **Academic performance** — What are pass rates and average scores, and do they differ by subject, grade, or term? Who are the top performers and who is at risk?\n3. **Enrollment** — Are schools meeting their enrollment targets, and is intake gender‑balanced?\n4. **Teaching delivery** — Are teachers delivering the lessons they plan, and which schools are falling behind?\n5. **Relationships** — Does better attendance translate into better academic results?\n6. **Prioritisation** — Taken together, which schools and which areas need the most attention?\n\n---\n\n## 3. Assumptions\n\nThe following assumptions underpin how the figures in this report were calculated, and should be kept in mind when interpreting them:\n\n1. **Grading is out of 100.** Every assessment was confirmed to use a maximum score of 100, so all score‑based thresholds below are expressed on that scale.\n2. **A \"pass\"** is any result where the student's score meets or exceeds that assessment's own pass mark — not a single fixed cut‑off applied to every assessment.\n3. **Performance thresholds.** \"Top performers\" score **80 or above**; \"at‑risk\" students score **below 40**. Score bands are Distinction ≥75, Credit ≥60, Pass ≥50, Near Pass ≥40, Fail \u003c40.\n4. **Attendance rate counts only days marked *Present*.** Days marked *Late* and *Absent* both count against it, so the attendance, late, and absence percentages add up to 100%.\n5. **\"Chronically absent\"** means a student missed **more than 10%** of their recorded school days — a per‑student measure, deliberately distinct from the district‑wide absence rate.\n6. **Lesson completion** is lessons delivered ÷ lessons planned; schools below **80%** completion are flagged as underperforming.\n7. **Gender parity** is the ratio of female to male **enrolled** students, where 1.0 represents perfect balance.\n8. **Time is handled differently by area.** Only attendance is recorded against calendar dates; assessments, enrollment, and teaching activity are compared using their own period labels (term, academic year, teaching week). The four terms are treated in chronological order (2023 Term 1 → 2024 Term 1).\n9. **Records are linked by school and student identifiers** that are assumed to be consistent and correct across all four datasets.\n10. **The source data is taken as complete and accurate as supplied** — no extra cleansing, de‑duplication, or correction was applied beyond combining the datasets.\n11. **The report reflects a fixed snapshot** covering 2023 Term 1 through 2024 Term 1.\n\n---\n\n## 4. Analysis Performed (EDA \u0026 Data Modelling)\n\n- **Data integration.** The four operational datasets were connected to shared reference tables for **schools**, **students**, and a **calendar**, so that any metric can be sliced consistently by school, grade, gender, subject, or term. School became the common thread linking every dataset.\n- **Standardised indicators.** Around **29 reusable performance measures** were defined (attendance rate, absence rate, chronic absenteeism, pass rate, top/at‑risk counts, enrollment achievement, gender parity, lesson completion, and more), so every chart reports numbers the same way.\n- **Exploratory data analysis (EDA).** Distributions, ranges, and completeness were reviewed across ~**24,000 assessment records** and ~**36,000 attendance records**. The grading scale was confirmed to be **out of 100** throughout, the four academic terms were verified, and the attendance–performance relationship was tested directly.\n- **Interactive dashboard.** A **four‑page report** was built for self‑service exploration:\n  1. **Executive Summary** — headline KPIs and a school scorecard\n    ![Executive Summary](https://github.com/mchenryspagg/district-education-performance-analysis/blob/main/education%20ex%20summary.png)\n\n  3. **Attendance Deep Dive** — rates, daily/weekday patterns, absence reasons, chronic cases\n    ![Attendance Deep dive](https://github.com/mchenryspagg/district-education-performance-analysis/blob/main/attendance%20deepdive.png)\n\n  5. **Academic Performance** — scores and pass rates by subject, grade, and term\n    ![Academic Performance](https://github.com/mchenryspagg/district-education-performance-analysis/blob/main/acdemic%20perf.png)\n\n  7. **Enrollment \u0026 Teacher Activity** — targets vs. actuals, gender balance, and lesson delivery\n   ![Enrollment \u0026 Teacher Activity](https://github.com/mchenryspagg/district-education-performance-analysis/blob/main/enrollment%26teacher%20activity.png)\n---\n\n## 5. Key Findings \u0026 Insights\n\n### Headline indicators\n\n| Area | Indicator | Result |\n|---|---|---|\n| Attendance | Attendance rate | **82.0%** (10.0% absent, 8.0% late) |\n| Attendance | Chronically absent students | **48%** (96 of 200) |\n| Academics | Pass rate | **90.4%** (average score 60.8 / 100) |\n| Academics | At‑risk students (score \u003c 40) | **9.6%** |\n| Enrollment | Target achievement | **84.3%** (12,623 places short) |\n| Enrollment | Gender parity (F : M) | **1.02** (balanced) |\n| Teaching | Lesson completion | **79.1%** (8 of 10 schools below 80%) |\n\n### What the dashboard shows\n\n1. **Teaching delivery is the weakest area.** Only **79.1%** of planned lessons were delivered, and **8 of the 10 schools fall below the 80% benchmark**. This is the single clearest operational shortfall in the district.\n\n2. **A strong headline attendance rate hides a widespread problem.** Overall attendance looks healthy at **82%**, but nearly **half of all students (48%) are chronically absent** — i.e., they miss more than 10% of their school days. The district‑wide average masks how many individual students are slipping.\n\n3. **Enrollment is consistently below target — across the board.** The district filled only **84.3%** of its target places (a shortfall of **12,623**), and every school sits in a narrow **83–85%** band. The uniformity points to a **system‑wide** cause (target setting, demand, or capacity) rather than a few weak schools. Intake is **gender‑balanced** (parity index 1.02).\n\n4. **Academic results are strong and remarkably consistent.** The pass rate is **90.4%** with an average of **60.8/100**. Performance barely moves across subjects (Mathematics highest at 61.2; Science lowest at 60.3 — under a one‑point spread), across the four terms (essentially flat), or across schools. Still, roughly **1 in 10 students is at risk** (scoring under 40), a group worth targeted support.\n\n5. **Attendance does not predict performance in this data.** Contrary to the usual expectation, students who attend more do **not** score higher here — the relationship is statistically negligible, and chronically‑absent students average essentially the same score (60.9) as their peers (60.6). Performance is being driven by something other than attendance.\n\n---\n\n### 5b. Data Source \n- [Raw Data](Education_Sample_Dataset.xlsx)\n\n---\n\n### 5c. Solution Power BI file \n- [Open Power BI Project](Education_Sample.pbip)\n\n---\n\n## 6. Recommendations\n\n1. **Make lesson delivery the top operational priority.** With 8 of 10 schools under 80% completion, investigate the causes (staffing, timetabling, teacher absence) and set a recovery target. This is the area with both the largest gap and the most direct lever for improvement.\n2. **Manage chronic absenteeism at the student level, not the headline level.** The 82% average is reassuring and misleading; track and intervene with the 48% of students who individually exceed the 10% absence threshold.\n3. **Review enrollment targets and demand together.** Because the shortfall is uniform across schools, examine whether targets are set too high relative to catchment demand/capacity before treating it as a recruitment failure.\n4. **Sustain academic strengths while protecting the at‑risk tail.** Pass rates are healthy; focus targeted academic support on the ~10% scoring below 40 (and watch Science, the lowest‑performing subject) rather than broad interventions.\n5. **Look beyond attendance for performance drivers.** Since attendance shows no measurable link to scores here, direct future analysis toward teaching quality, curriculum, or assessment design to explain and lift outcomes.\n\n---\n\n## 7. Conclusion\n\nConsolidating the district's attendance, assessment, enrollment, and teacher‑activity records into one model and dashboard turned scattered spreadsheets into a clear, comparable picture of performance. The data tells a consistent story: **academic outcomes are solid and stable, but operational delivery is lagging** — lessons are under‑delivered, almost half of students are frequently absent, and enrollment is system‑wide below target. Encouragingly, intake is gender‑balanced. The most valuable next steps are operational (lesson delivery and absenteeism) rather than academic, and the dashboard now gives leadership the means to monitor each of these indicators by school, term, and student group on an ongoing basis.\n\n---\n\n\u003e **Data note.** The figures are exact for the dataset analysed, but the distributions are unusually uniform (subjects within ~1 point, schools within ~2 points), indicating this is a **generated sample** intended to demonstrate the reporting approach. The percentages and patterns should be read as illustrative of the method rather than as real‑world effect sizes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmchenryspagg%2Fdistrict-education-performance-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmchenryspagg%2Fdistrict-education-performance-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmchenryspagg%2Fdistrict-education-performance-analysis/lists"}