Model Evaluation Service · View 11 of 21 · Data
Decisions
- frame_id appears on both run and score. A score must be self-describing even if its run row is lost, because the frame is what makes the number mean anything.
- score.superseded_by rather than an update column: a correction is a new fact, never an edit to an old one.
- example.tombstoned_at makes the erasure path a first-class state rather than a deletion nobody can audit.
Assumptions
- scorer.kappa_vs_human and scorer.gate_admissible are stored on the scorer, so admissibility is data the gate reads rather than a convention people remember.
Deliberate omission
- Three foreign keys are carried as columns rather than drawn — score.run_id, example.dataset_version and suite.dataset_id — to keep the relations readable.