---
title: Close the 12-play gap between the vendor playlist and nfl_plays in 2025 preseason
type: task
status: planned
description: >-
  The vendor playlist serves 12 plays across six 2025 preseason games that nfl_plays does not hold.
  2024 preseason reads zero such plays, so the gap is 2025-specific and its cause is unknown.
base_uri: user:task/league/close-2025-preseason-missing-plays-gap.md
created_at: '2026-09-23T03:18:31.501Z'
entity_id: 0a220317-c04b-4f42-8323-2d0ce5bae848
owner_identity_uri: █████████████████████████
priority: Low
public_read: true
relations:
  - relates [[█████████████████████████-█████████-████████-██████████]]
  - follows [[user:guideline/nfl/league/preserve-unique-data.md]]
tags:
  - user:tag/league-xo-football.md
updated_at: '2026-09-23T03:18:39.260Z'
visibility_analyzed_at: '2026-11-05T23:48:31.500Z'
---

# Implementation Plan: Close the 2025 preseason missing-plays gap

## Overview

- The vendor playlist carries 12 plays across six 2025 PRE games that `nfl_plays` does not hold. The cause is unknown.
- Found incidentally by the tracking backfill in [[█████████████████████████-█████████-████████-██████████]], which ran fill-only and correctly refused to insert them: a tracking-only payload would have written skeleton rows with no description, no teams and no down, which count in every population query as real plays.

## Background

Measured 2026-09-22 from the backfill run logs, which report per game how many offered plays the table did not hold.

- 2025 PRE: 2 each on esbid 2025082151 and 2025082351, 5 on 2025082353, and 1 each on 2025082355, 2025082359 and 2025082360.
- 2024 PRE: zero across all 49 games. So this is 2025-specific rather than a standing property of the importer.

The 2024 reading is what makes this worth a look: the same writer over the same season type produced a complete table one year and a 12-play hole the next.

## Design

Unstarted. The first question is whether those 12 plays are ones the importer skipped -- it drops any play missing `playType` and logs a line when it does -- or ones the vendor added after the game was finalized. Capturing that log on a re-run answers it without guessing.

Inserting them is NOT simply a matter of lifting the fill-only refusal. A real insert needs the full enriched row, which is the write the backfill task deliberately avoided because enrichment cannot resolve preseason pids. Read [[user:guideline/nfl/league/preserve-unique-data.md]] before proposing one.

## Plan

### Core Implementation

- [ ] **Identify the 12 plays and why they are absent**
- [ ] **Decide whether they should be inserted, and through what write path**
