Reconciliation review
Administrative direct-link page. Review regular league totals, Challenge Cup group/league-stage totals, Challenge Cup knockout totals and playoffs separately. No competition is silently combined, and this page is not in the public navigation or sitemap.
Decisions that change data. A draft is a proposal nobody has signed off. To approve one,
edit its row in data/v2/rulings.csv: set status to approved (or
rejected) and fill reviewer and decided_at. To change a decision, add a new row
that names the old one in supersedes_ruling_id; rows are never deleted.
Every game's result, resolved from all sources (v2). Sources vote by family: EIHL's schedule and game page
are one voice. Listed here: every result where sources disagree, and any result that breaks a hockey rule. Nothing on
this page changes data; a decision is a ruling with metric score (value
home-away) or decided_in. majority means most independent sources agree
and the rest are outvoted (usually EIHL's modern schedule reversing a historic score); priority means the vote
was split and the source-priority table decided; those are the ones most worth a look.
Per-game player statistics resolved from every source (v2). Nothing on this page changes data. A
correction to one player's figure for one game is a row in data/v2/player_stat_rulings.csv
(fixture_key, player_key, role, metric, value, evidence, reviewer, decided_at); it outranks every source.
Goals that don't add up
Games where no source's goal credits match the final score, or the owner corrected single players. A further games had one source set aside because another adds up.
Goalie decisions that don't fit the result
One win for a goalie of the winning team and one loss for a goalie of the losing team; mostly EIHL crediting both goalies of a team that changed goalie.
Season totals EIHL's profiles disagree with
Per-game figures the sources disagree on
Everything the v2 parsers could not fully read. Parsing never refuses a page: each finding is recorded here and the page still yields every record it could. Nothing on this page changes data.
How to decide a finding
Add a row to data/v2/finding_dispositions.csv and commit it. Use a code row to decide every
finding with one code at once, or a finding row for one finding; a finding row wins over a code row.
The copy buttons give a ready row with accepted_source_gap filled in: change the disposition if needed and
replace REASON and REVIEWER. Dispositions:
accepted_source_gap: the source genuinely lacks it; nothing can be doneaccepted_source_error: the source is wrong here, and the pipeline already handles itrecapture: fetch the page againparser_fix: our parser misread the page; fix the parserruling: needs a data decision in data/controls/rulings.csv
Columns: scope, finding_code, document_path, locator, disposition, reason, reviewer, decided_at. Findings are keyed by page and location, so a decision keeps applying across every rebuild.