Judging Desk

Fair rankings from your judges' scores. It evens out harsh and lenient judges, leaves out conflicts of interest and shows which entries still need a judge.

Your data stays on this device. Everything runs in your browser. Nothing is uploaded.

1. Load the scores

Columns: id, name, track, team. Track and team are optional.

One row per judge per entry: judge, entry_id, then one column per criterion.

2. Rubric and settings

Rubric

The criteria appear here once the scores have a header row.

Weights are relative: 3 and 1 means the first counts three times as much.

Spread between judges, in points out of 100.

One per line: judge, entry_id. That judge's score for that entry is left out.

How the score works

  1. Each judge's criteria are turned into one total out of 100, using the rubric weights.
  2. Each judge's totals are compared with that judge's own average. A 70 from a judge who usually gives 50 counts for more than a 70 from a judge who usually gives 85. A judge with fewer than 3 scores, or totals that barely differ, keeps their raw scores.
  3. Those positions are put back on one shared scale, so every judge has the same pull.
  4. Scores from a declared conflict are left out. The entry's score is the mean of what is left.
  5. Ties are settled by the higher median, then more judges, then the first criterion. If still level, the entries share the rank.

The full explanation, with a worked example, is in the README.