Written for: Devpost judges and visitors reading the project page.
Inspiration
A scholarship model that is 88% accurate grants 48% of applicants in the big centres and 27% in three remote regions. We wanted to know why, fix it, and keep it fixed.
What it does
It ranks applicants on merit alone (cote R plus hours worked) and grants exactly the top 40%. Region, postal code, distance, income, programme and first-generation status never enter the score.
How we built it
Python with pandas, scikit-learn and fairlearn. We fitted a transparent model of the committee, split the gap with Shapley values, tested proxies, and swept the fairness constraint into a Pareto front. The slides are LaTeX.
Challenges we ran into
The reference standard is hidden, so every fairness number depends on an assumed standard. Deleting the region column also fails, because the postal code gives it away (AUC 1.000).
Accomplishments that we're proud of
We removed a 15.6-point regional penalty and the income reward. Swapping only the region changes no decision, and one command rebuilds the predictions byte for byte.
What we learned
A model that looks fair against the committee's own decisions (0.06) is not fair against merit (0.32). Past the platform's noise ceiling, a higher score fits the platform, not fairness.
What's next for EquiAlgo
A blind panel to build the real standard and measure the equity gap, a check of the hours credit, and quarterly monitoring.
Log in or sign up for Devpost to join the conversation.