Skip to content

[Change] § 5.6.2 — Let a seller cap concurrent holds per buyer, and admit hold requests like commitments #156

Open

Description

@pkanna000

What kind of change?

Add a new field

Which section?

5.6 — Commercial terms

Current text

§ 5.6.2 hold_status: hold_available, hold_duration, hold_scope, state, hold_expires_at.
PR #143 restructures this into hold_terms { available, duration } and hold, where hold.held_availability is "what the seller reserves".

Neither ties a hold request to a buyer the seller could accept a commitment from, or lets a seller state how many holds one buyer may have at once.

Proposed text

Add to hold_terms (PR #143), or to hold_status if #143 does not land:

max_concurrent (Integer, OPTIONAL): the most holds this seller grants one buyer at once, counted across the seller's line items in hold status held.

1. A seller MUST NOT grant a hold to a requester it would not admit to a commitment on that line item (§ 5.8, PR #139).
2. A request that would exceed max_concurrent is declined (PR #143) with a reason (§ 2.4, PR #138).
3. A seller that offers holds on a visibility: public line item SHOULD set max_concurrent.

Why

Interest declaration: filing in an individual capacity; views are my own. I'm an enterprise architect with 27 years in software, the last four in advertising technology, working on the governance and security of AI agent systems.

Under #143, a held line item reserves inventory (held_availability) with no money changing hands. A human buyer asks for a few holds. A buying agent can ask for one on every line item it screens, at machine speed, and convert one of them. An agent stuck in a retry loop does the same thing by accident. Either way, other buyers lose access to the inventory.

Today a seller can only defend with transport rate limits that buying agents can't see. They'd learn the limit by failing, and nothing makes a hold requester as accountable as a committing buyer.

At least one sell-side agent in the IAB Tech Lab Agent Registry already places a 72-hour inventory hold when a proposal is finalised (registry snapshot, 5 Nov 2026).

Knock-on effects

Would this break an implementation already built to this draft?

No — additive or editorial

Alternatives you considered and rejected

  • Transport rate limits only. They're invisible to buying agents and can't express a per-buyer inventory policy.
  • Deposits for holds. That belongs in binding terms, not the object.
  • Rely on buyer-side discipline. A seller can't verify it.

Glad to supply the PR diff on top of #143 once the direction is agreed.

You are commenting as

Individual, no organisational position

Before you submit

  • I have read CONTRIBUTING.md and agree my contribution may be published under this repository's licence.
  • This contains no confidential or commercially sensitive information.

Activity

  1. KonstantinMirin commented on Nov 6, 2026

    @KonstantinMirin

    Postindustria (IAB Tech Lab member). Thanks, @pkanna000. A declared cap fixes a real problem: an agent shouldn't learn a limit by failing.

    We'd keep max_concurrent out of hold_terms, though. It counts holds across all of a seller's line items, so it's seller policy, not a term of one line item. The manifest (§ 2.3) is the draft's one seller-level document, and the natural home.

    Analyzed and generated with the help of Claude, fully reviewed by me.

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

    change-requestProposes specific normative wordingnormativeChanges what the spec requires

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions