---
title: Repair the six Caesars prop markets whose esbid stamps are actively drifting
type: task
status: planned
description: >-
  Six Caesars prop markets carry different esbid values on their OPEN and CLOSE rows and are still
  drifting today, unlike the closed PrizePicks population. Three name two distinct source_event_ids,
  so no single correct esbid exists and the fix belongs in the importer.
base_uri: user:task/league/repair-caesars-active-esbid-drift.md
created_at: '2026-09-22T17:04:35.879Z'
entity_id: 024ea6c0-5fdf-40f1-bd43-3d7d8fe5716f
owner_identity_uri: █████████████████████████
priority: Medium
public_read: true
relations:
  - relates [[user:task/league/repair-drifted-prop-market-esbid-stamps.md]]
  - relates [[█████████████████████████-████-██████-█████-████████]]
  - relates [[███████████████████████-████████-██████-███████]]
tags:
  - user:tag/league-xo-football.md
  - user:tag/software-task.md
updated_at: '2026-09-22T17:04:59.252Z'
visibility_analyzed_at: '2026-11-05T23:50:03.633Z'
---

## Context

Split out of [[user:task/league/repair-drifted-prop-market-esbid-stamps.md]] on 2026-09-22, which repaired the 9,160 PrizePicks markets and deliberately excluded these six. That task is Completed; this one carries what it could not.

**These are a different defect from the PrizePicks population, and the difference is why a data repair does not apply.**

| | PrizePicks (repaired) | Caesars (these six) |
|---|---|---|
| population | 9,160 markets | 6 markets |
| still drifting? | no — closed, nothing after 2025 | **yes — four had a CLOSE row observed on 2026-09-22** |
| `source_event_id` | exactly one per market | **three markets name TWO; one names none** |
| selections | present and graded | **zero selections, zero settlements** |
| kickoff feasibility decides it? | yes — 9,156 of 9,160 CLOSE-only feasible | **no — all six are feasible on BOTH rows** |

Two of them carry an OPEN row observed in 2024 against a 2026 esbid.

**A repair would be overwritten by the next scrape.** The drift is live, so re-pointing the rows fixes the symptom until the importer writes again. That is what makes this an importer bug rather than a data repair, and it is the reason these were held back rather than folded into the PrizePicks pass.

**No single correct esbid exists for three of them.** Where a market names two distinct `source_event_id` values, there is no oracle to repoint onto — the question "which game is this market for" has no answer from the stored data alone. Establish what the vendor actually sent before assuming one of the two is right.

## Plan

- [ ] **Re-measure first — the population is live and these counts are from 2026-09-22.** Confirm the six are still six, and whether any have since gained selections. A market that has gained selections has changed class and needs re-reading, not the rule below.
  - Verify: run the divergence query scoped to `source_id = 'CAESARS'` and confirm it returns a nonzero for at least one other book as a positive control, since a zero from a query that was always going to return zero proves nothing.

- [ ] **Find the writer.** Identify which Caesars import path stamps `esbid` on these markets and why the two rows disagree. The PrizePicks cause does not transfer: there, `propagate-prop-market-identity.mjs` coalesces so OPEN froze a stale first derivation. Establish the Caesars mechanism from the code rather than assuming the same shape.
  - Verify: name the file and line that writes each row, and show the path by which the two can diverge.

- [ ] **Rule on the three markets naming two `source_event_id` values.** Decide whether the vendor genuinely re-pointed the market, whether one event id is stale, or whether the market should be deleted as unidentifiable. Say which, and why, rather than picking the later one.

- [ ] **Fix the importer, then repair the rows.** In that order — a repair landing first is overwritten.
  - Verify: after the importer fix is deployed, confirm no NEW drift appears across a full import cycle before repairing the existing six. A repair applied under a still-broken writer cannot be distinguished from one that held.

## Relationship to the grain redesign

[[█████████████████████████-████-██████-█████-████████]] piece three-b collapses each market's OPEN and CLOSE rows into a single `prop_markets` row, so a divergent `esbid` becomes an arbitrary permanent choice. **These six will be collapsed that way if three-b lands first**, taking the CLOSE value under the backfill tie-break. Six markets carrying zero selections is a small and knowingly-accepted loss, unlike the 9,160 that were repaired — but it is a loss, and it should be an explicit decision rather than a surprise found afterwards.
