Skip to content

[Change] § 5.6 — pricing[].guidance: seller-published transacting-price percentiles alongside floor #19

Description

@fgranata

What kind of change?

Add a field

Which section?

5.6 — Commercial terms

Field(s) involved

pricing[] (new OPTIONAL key guidance)

Current text

pricing[] entries carry gross_rate and an OPTIONAL seller-set floor ("the seller's offer floor: the lowest rate it will consider at proposal time", per #16 / PR #18). Nothing describes where the line item actually transacts.

Proposed text

Add an OPTIONAL, seller-set pricing[].guidance object alongside floor:

pricing: [{
  gross_rate, floor?,
  guidance?: { p25, p50, p75, p90 }   # same units and currency as gross_rate
}]

Semantics: the seller's own observed transacting prices for this line item over a seller-chosen trailing window, expressed as percentiles. Like addressable_scale (§ 3.3), guidance is recomputed against the buyer's current selection when the seller can (e.g. per selected geo once #14 part 1 lands), and otherwise describes the line item as offered. It is informational: it creates no obligation and is not an offer.

Suggested field description: "OPTIONAL. Seller-published percentiles of the rates at which this line item has recently transacted, in the units of gross_rate. Informational only; a counter at or above floor is evaluated on its own terms regardless of guidance."

Why

floor tells a buyer the lowest rate the seller will consider; it does not tell the buyer whether a rate above the floor will clear once the line item is live. For exchange-sold inventory those two numbers can be an order of magnitude apart, and they move with the buyer's selection (see the Indonesia / Malaysia example in #14). Without guidance the buyer either overpays to be safe or commits at a rate that cannot clear — the same failure floor exists to prevent, one step later.

We publish exactly this on our own catalog today (per-geo p25/p50/p75/p90 next to the floor). It was added after a buyer agent committed a worldwide rate into a market where nothing clears at it; the buyer side asked for it, and it removed that failure mode.

On the concern raised in #14 about publishing clearing distributions: guidance is the same class of disclosure as floor — each seller's own numbers, published unilaterally and optionally, with nothing shared between sellers and nothing a seller is required to publish. A seller that does not want to publish simply omits the key. We'd welcome the working group confirming that reading under the GOVERNANCE.md note.

Knock-on effects

  • § 2.1 summary representation: unchanged (gross_rate only); guidance belongs to the full representation.
  • § 3.3: if guidance is recomputed against the selection, it joins addressable_scale in the list of selection-dependent seller-computed fields.
  • Appendix A: one optional key under pricing[].
  • No downstream change: the agreed rate, not the guidance, is what the Deals API line carries.

Would this break an implementation already built to this draft?

No — additive and optional.

Alternatives you considered and rejected

  • A single expected_rate number: hides the spread, which is the information a buyer needs to size a counter.
  • Publishing only floor and letting the buyer discover clearing behaviour in flight: that is the failure this prevents.
  • Free-text pricing notes in content_detail: not machine-evaluable.

Concrete scenario

Buyer brief targets ID + MY. The seller's shelf lists the placement at worldwide gross_rate: 1.20, floor: 0.70; with #14 part 1 the ID/MY selection carries a geo delta, and guidance for that selection reads { p25: 14.0, p50: 21.0, p75: 27.0, p90: 32.0 }. The buyer's agent now sizes its counter against where the line item actually transacts for its selection, instead of against a worldwide floor that cannot clear there.

You are commenting as

SSP — an in-app supply-side exchange (mobile + CTV) selling preferred-deal / private-auction / open-market inventory to buyer agents; we run the seller side today.

Before you submit

  • I have read the draft section I am commenting on.
  • This contains no confidential or commercially sensitive information.

No activity

Activity on this issue will appear here.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions