Skip to content

Linear TV: preemption notice + replacement offer / accept-reject workflow #5683

Open

Description

@pkras

Part of a five-issue set extending AdCP to support linear TV. These map to the buyer-expresses / seller-fulfills contract model AdCP already uses (measurement_terms, performance_standards, makegood_policy) — the goal is to add linear-specific objects onto that existing two-sided spine, not a separate "linear mode."

Set: targeting · demos · GRP · airing log · makegoods/preemption.

Gap

makegood_policy already enumerates remedies (additional_delivery, credit, invoice_adjustment) and there is variance/cancellation handling. But cancellation is all-or-nothing and a makegood is a static aggregate remedy triggered by variance — there is no interactive preemption loop ("spot preempted, here's a replacement, do you take it?").

Missing

  • Preemption notice as a normal operation (not all-or-nothing cancellation)
  • Seller→buyer replacement offer object
  • Buyer accept/reject workflow on that offer
  • Makeup scheduling

Proposed shape

  • Buyer expresses: accept/reject on a replacement offer
  • Seller fulfills/returns: preemption notice + replacement offer

Notes

Heaviest of the five — adds a new interactive workflow. Sequence last.

Activity

  1. added
    enhancementNew feature or request
    rfcProtocol change — auto-adds to roadmap board
    media-buyIssue concerns the media-buy protocol domain
    on Jun 24, 2026
  2. pkras commented on Jun 24, 2026

    @pkras
    CollaboratorAuthor
  3. added
    claude-triagingTriage routine is actively working on this issue (1-3 min)
    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.
    and removed
    claude-triagingTriage routine is actively working on this issue (1-3 min)
    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.
    on Jun 24, 2026
  4. added this to the Spec Backlog milestone on Jun 24, 2026
  5. added
    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.
    and removed
    claude-triagingTriage routine is actively working on this issue (1-3 min)
    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.
    on Jun 24, 2026
  6. 18 remaining items

  7. added
    claude-triagingTriage routine is actively working on this issue (1-3 min)
    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.
    and removed
    claude-triagingTriage routine is actively working on this issue (1-3 min)
    on Oct 8, 2026
  8. bokelley commented on Oct 8, 2026

    @bokelley
    Contributor

    How pre-approved makegoods work today (Greg Morey, O-N-X, 2026-10-08): line alternates. The IO names a primary program and a ranked list of pre-approved alternates, for example:

    • Primary: "60 Minutes"
    • Alternate 1: "Jeopardy"
    • Alternate 2: "Wheel of Fortune"
    • Alternate 3: "KCAL 6P News"

    If the primary is preempted, the seller airs the highest-ranked alternate available, and no per-spot negotiation is needed.

    That gives the 3.4 contract-time half a concrete shape that's simpler than general "same-or-better" criteria: an ordered line_alternates[] on the booked line (program/network/daypart references), agreed at contract time. The report-time half that's in progress for 3.3 already covers the result: a makegood row with replaces_spot_id. A 3.4 follow-up could add which alternate rank was used. General same-or-better criteria can come later if anyone asks.

  9. bokelley commented on Oct 31, 2026

    @bokelley
    Contributor

    Part of this shipped: report-time spot_status, scheduled_at and replaces_spot_id in #8017 (3.3.0-beta.0), and the interactive seller offer lane with offer_reason: preemption in #8102 (3.3.0-beta.2). The offer lane's seller-held allowance part is 4.0 (#8660).

    Contract-time pre-approval (preemption_criteria or line_alternates[]) was assigned to 3.4 (#5683 (comment)) and not decided for 3.3, so per the WG rule ('anything not decided moves to 3.4') only that remainder moves to 3.4. Objections by Fri 2026-11-06. The milestone stays 3.3.0 for now; it will be moved after Nov 6.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.enhancementNew feature or requestmedia-buyIssue concerns the media-buy protocol domainneeds-wg-reviewBlocked on a working-group decision — surface in WG meeting agendasrfcProtocol change — auto-adds to roadmap boardspec / protocol

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions