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 |