---
title: Backfill is_completion for the 2024 conference championships and Super Bowl
type: task
status: planned
description: >-
  nfl_plays.is_completion is NULL on every PASS play of esbids 2025012600, 2025012601 and 2025020900
  while their stat rows exist, so completion counts and prop settlement read zero. Run the scoped
  play-stat backfill on the league host and find why these games skipped the column.
base_uri: user:task/league/backfill-is-completion-for-2024-late-postseason.md
created_at: '2026-10-07T21:15:07.341Z'
entity_id: ffc36e4d-98aa-487f-8a68-c707fe36d83a
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
tags:
  - user:tag/league-xo-football.md
  - user:tag/software-task.md
updated_at: '2026-10-07T21:15:14.098Z'
visibility_analyzed_at: '2026-11-05T23:48:25.466Z'
---

## Context

`nfl_plays.is_completion` is NULL on every PASS play of the last three 2024-season postseason games: both conference championships (esbids 2025012600, 2025012601) and the Super Bowl (2025020900). Re-measured 2026-10-07: 82, 64 and 63 PASS plays, zero non-null. Every earlier 2024 postseason game carries it (for example 2025011901: 34 true of 50). Completion counts and prop settlement silently read zero completions for these games (friction signal 134904).

`nfl_play_stats` holds the stat rows for all three games (765, 675 and 664 rows), so the column is derivable. `is_completion` is a subordinate column that `process-plays` never writes (`libs-server/play-enrichment/play-stat-column-map.mjs:112`). `scripts/backfill-preseason-play-stat-columns.mjs` fills it, scoped to named columns, writing nothing outside the play-stat map.

## Plan

- [ ] On the league host, dry-run: `node scripts/backfill-preseason-play-stat-columns.mjs --start 2024 --end 2024 --season_type POST --columns is_completion --adds_only --dry`. Expect adds on the three games only, and no change elsewhere.
- [ ] Run it without `--dry` and a `--reason` naming this task.
- [ ] Verify: `select esbid, count(*) filter (where play_type='PASS' and is_completion is null) from nfl_plays where esbid in (2025012600,2025012601,2025020900) group by esbid` returns a null count no higher than a neighbouring game's (incompletions carry no stat row).
- [ ] Find why these three games skipped the column when the rest of the postseason has it, and whether any 2025-season game shares the gap.
