Power BI · Python — Portfolio project
Tutoring Centre Dashboard
The problem
The owner of a small tutoring business with two centres usually finds out too late that a student is struggling: when the final grade comes in, or when the student stops coming. By then, a term of fees and a chance to help are gone.
This dashboard asks a simple question: what can the owner see in January that helps them act before June?
Who it’s for
Owners and managers of small education businesses (φροντιστήρια, language schools, training centres) who already have grades, attendance and payments in spreadsheets, but no single place to read them.
What the dashboard answers
- How are the two centres doing this year? Students, pass rate, grades, attendance and fees on one page.
- Which classes need support? Each class is compared with similar classes (same centre, subject and level), with a band showing what normal variation by chance looks like. It is not a teacher ranking.
- Which students are at risk, and why? In January, after the first grades, every student gets a risk score and the two main reasons behind it. A slider shows the trade-off between catching more students and raising more false alarms.
- Where does the money stand? Fees due, paid, late and unpaid, and money received through the year.
- Who came back? New and returning students over four school years.
- What is coming? A forecast of upper-secondary pupils in every Greek region until 2030, from real Eurostat data.
- Is the warning fair, and who sees what? A fairness check across groups of students, and row-level security so each teacher sees only their own classes.
Watch the demo
Subtitles in English and Greek: use the CC button.
What I found
- A simple rule works almost as well as the model. Flagging every student with a 1st-period grade below 10 caught 83.5% of the students at risk. The model caught 84.4%. Sometimes the honest answer is “keep it simple”.
- The January warning catches most leavers. 47 of the 53 students who later left (88.7%) were already flagged in January. Acting on that list could protect part of the estimated €25,175 in fees lost to leavers.
- No evidence of unequal treatment. Rural, no-internet and North students are flagged more often, but they are also more often really at risk. Caught and false-alarm rates show no gap beyond chance.
- The market is shrinking. Greece is forecast to have about 12.8% fewer upper-secondary pupils in 2030 than in 2024, and every region declines.
How it’s built
A Python pipeline prepares the data, builds the model and the forecast, and runs 104 data-quality checks and 58 automated tests before anything reaches Power BI. The report uses a star schema, row-level security, a what-if parameter, drill-through, a report-page tooltip and bookmarks.
About the data
Student grades are real but anonymised, from two Portuguese secondary schools (UCI Student Performance dataset, CC BY 4.0). Regional pupil and population figures are real (Eurostat). Teachers, classes, monthly attendance, fees, payments and earlier school years are synthetic. This is a fictional business: no real Greek students or staff appear in it.