A federation’s referee board solves the same problem every week: hundreds of matches, hundreds of referees, a distribution that follows the rules and is fair. Done by hand it takes hours, rule breaches slip through and fairness stays subjective. Nobody can show with a number who got how many matches or who travelled how far over a season.

Assignment is an optimization problem

Excuses, bans, league licences, city restrictions, the ban on refereeing the same team twice in a row, two matches on one day and monthly caps go into the model as constraints. Match-count fairness, travel balance and the fit between a match’s difficulty and the crew’s strength are objectives. Mixed-integer programming handles this structure naturally: constraints are never violated, and objectives are balanced by their weights.

Control stays with the board

The system does not decide, it proposes. The board reviews the proposal, changes individual assignments if needed and commits it. Every change is checked against the rules instantly. Committed matches are never changed automatically again; they enter the following weeks’ solve as history. Every proposal’s reasoning is recorded: which rule, which value.

Rolling horizon

The model solves a long window, but only the first weeks are committed. Then the window rolls forward. When the fixture changes, only the affected weeks are re-solved; committed assignments are preserved.

Our work in this area