From ff53dc5a7d436ac42995f9842394369901e9eb70 Mon Sep 17 00:00:00 2001 From: Sirajmx Date: Tue, 6 Oct 2026 16:28:09 +0530 Subject: [PATCH 1/2] Clarify that pricing[].floor is the offer floor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit § 5.6 defines floor as the seller's offer floor at proposal time, not the downstream auction floor and not a guarantee that bids will clear. Editorial: the meaning of the field is unchanged. Refs #16 --- spec/CHANGELOG.md | 3 +++ spec/openproposal-3.0.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/spec/CHANGELOG.md b/spec/CHANGELOG.md index 1dfacef..5ebc71d 100644 --- a/spec/CHANGELOG.md +++ b/spec/CHANGELOG.md @@ -5,6 +5,9 @@ issue that caused it, so the comment record and the spec history line up. ## [Unreleased] +- § 5.6 — `pricing[].floor` is the offer floor, not the downstream auction + floor. Editorial clarification ([#16](https://github.com/IABTechLab/OpenProposal/issues/16)). + ## [3.0-draft-1] — 2026-09-22 Initial draft published for public comment. Ported from the working-group diff --git a/spec/openproposal-3.0.md b/spec/openproposal-3.0.md index 6940958..1a6dc37 100644 --- a/spec/openproposal-3.0.md +++ b/spec/openproposal-3.0.md @@ -271,7 +271,7 @@ Each field declares bounds, not a value. A bare value means the field is | `pricing[].seller_rate` | Number | seller-set | What the publisher receives | | `pricing[].price_valid_until` | Timestamp | seller-set | How long the posted rate holds. Distinct from the proposal's `valid_until` | | `pricing[].currency` | String | seller-set | ISO-4217 | -| `pricing[].floor` | Number | seller-set | OPTIONAL. The lowest rate the seller will consider. Enables a `requestable` counter to be evaluated without a round trip | +| `pricing[].floor` | Number | seller-set | OPTIONAL. The seller's offer floor: the lowest rate it will consider at proposal time, so a `requestable` counter can be evaluated without a round trip. Not the downstream auction floor, and not a guarantee that bids at or above it will clear | | `availability` | Object | derived | `{ unit, basis, as_of, granularity, type: forecast \| reservable, quantity }`. Recomputed against the buyer's selection | | `commitment_bounds` | Object | seller-set | The envelope inside which a buyer may commit: `{ min_impressions, max_impressions, min_budget, max_budget }` | | `commitment` | Object | settable | **The buyer's actual commitment.** See 5.6.1 | From e3cbe66c1ec17d4685113ae87eb37ef26206ef7f Mon Sep 17 00:00:00 2001 From: Sirajmx Date: Wed, 28 Oct 2026 21:20:21 +0530 Subject: [PATCH 2/2] Use the ticket's wording and name the auction floor it means The floor row now says it "neither constrains nor describes the downstream auction floor", as #16 asked, and names that floor: the per-impression floor the exchange applies at auction time (OpenRTB 2.6 Imp.bidfloor). Refs #16 --- spec/openproposal-3.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/openproposal-3.0.md b/spec/openproposal-3.0.md index 1a6dc37..35f095a 100644 --- a/spec/openproposal-3.0.md +++ b/spec/openproposal-3.0.md @@ -271,7 +271,7 @@ Each field declares bounds, not a value. A bare value means the field is | `pricing[].seller_rate` | Number | seller-set | What the publisher receives | | `pricing[].price_valid_until` | Timestamp | seller-set | How long the posted rate holds. Distinct from the proposal's `valid_until` | | `pricing[].currency` | String | seller-set | ISO-4217 | -| `pricing[].floor` | Number | seller-set | OPTIONAL. The seller's offer floor: the lowest rate it will consider at proposal time, so a `requestable` counter can be evaluated without a round trip. Not the downstream auction floor, and not a guarantee that bids at or above it will clear | +| `pricing[].floor` | Number | seller-set | OPTIONAL. The seller's offer floor: the lowest rate it will consider at proposal time, so a `requestable` counter can be evaluated without a round trip. It neither constrains nor describes the downstream auction floor, the per-impression floor the exchange applies at auction time (OpenRTB 2.6 `Imp.bidfloor`), and bids at or above it are not guaranteed to clear | | `availability` | Object | derived | `{ unit, basis, as_of, granularity, type: forecast \| reservable, quantity }`. Recomputed against the buyer's selection | | `commitment_bounds` | Object | seller-set | The envelope inside which a buyer may commit: `{ min_impressions, max_impressions, min_budget, max_budget }` | | `commitment` | Object | settable | **The buyer's actual commitment.** See 5.6.1 |