Frozen audit record written by the settlement watcher when it grades
a leg. Used by the reconciliation cron (re-check stat corrections in
the last ~30 minutes) and by the user-facing dispute flow (Phase G).
Why we store this verbatim instead of recomputing: ESPN issues stat
corrections after the fact; we want the user to be able to see
"we graded this as Lost based on Brunson's 14 pts at 2026-05-04T22:14:11Z"
even if the box score later updates.
Frozen audit record written by the settlement watcher when it grades a leg. Used by the reconciliation cron (re-check stat corrections in the last ~30 minutes) and by the user-facing dispute flow (Phase G).
Why we store this verbatim instead of recomputing: ESPN issues stat corrections after the fact; we want the user to be able to see "we graded this as Lost based on Brunson's 14 pts at 2026-05-04T22:14:11Z" even if the box score later updates.