Skip to content

[Change] § 5.6.1 — State what commitment.amount includes (rate basis, third-party fees, tax) #115

Open

Description

@dineshbhat

What kind of change?

Change a normative requirement (MUST / SHOULD / MAY)

Which section?

5.6 — Commercial terms

Current text

| `amount` | REQUIRED | The figure committed |
| `currency` | REQUIRED when `basis = spend` | ISO-4217 |

Proposed text

§ 5.6.1, after the table:

When `basis` is `spend`, `amount` is the media cost the buyer pays the seller,
priced at `pricing[].agreed_rate`. It excludes amounts the buyer pays to parties
other than the seller (agency commission, DSP or technology fees, data and
verification costs). If the seller itself bills a cost for this line item
(e.g. data or production), that cost appears as its own `pricing[]` entry and is
included in `amount`. `amount` excludes taxes unless `billing.tax_inclusive` is
true.

§ 5.10, `billing`: add OPTIONAL `tax_inclusive` (boolean, default false).

Why

A buyer agent commits against a client budget that is usually stated gross (including agency commission and fees) or net (working media). If amount doesn't say which, the same $100,000 commitment can be read as two different media spends, and reconciliation against the seller's invoice (§ 5.10) can't succeed. This needs only a definition, not new pricing machinery. It fits with #94 (what several pricing[] entries mean) and #30 (how agreed_rate is derived).

Knock-on effects

derived_units is unaffected; it is already computed from agreed_rate.

Would this break an implementation already built to this draft?

No — additive or editorial.


Filed after the 2026-10-22 close of the comment period, so we understand this is post-comment and for the next draft. Submitted by Hypermindz (buy-side agentic media planning platform).

Activity

  1. aleksUIX commented on Oct 24, 2026

    @aleksUIX

    Proposed wording and reproducible fixtures: PR #117.

    There is an interaction with #94 to settle before this wording lands.
    That proposal makes pricing[] entries alternatives, so a seller fee in a
    second entry would be another choice rather than an additive charge.

    Including a fixed fee in amount also changes the unit calculation. With
    USD 50,000 committed at USD 25 CPM and a USD 2,500 production fee inside that
    amount, media spend is USD 47,500 and derived_units is 1,900,000 impressions.
    Computing units from all USD 50,000 implies 2,000,000 impressions and a
    USD 52,500 seller total after the fee.

    I suggest resolving the fee basis alongside #94:

    • Select one pricing alternative. Do not sum alternative rows.
    • Keep applicable one-time seller charges outside the unit rate. Selected
      delta_flat options cover the initial cases; a general mandatory-fee
      structure needs its own decision.
    • For fee-inclusive spend, use (amount - flat_charges) / agreed_rate * rate_per.
    • For a units commitment, use amount / rate_per * agreed_rate + flat_charges
      for the seller total, and apply budget bounds to that total.

    I have prepared focused wording and supporting calculation vectors. They keep
    floor composition and automatic acceptance with the separate #30 discussion;
    passing the arithmetic does not establish acceptance. Tax-inclusive amounts
    need a defined tax amount or calculation before the same derivation can apply.

    Member of the IAB Tech Lab Agentic Taskforce, commenting in a personal capacity.

  2. KonstantinMirin commented on Oct 25, 2026

    @KonstantinMirin

    Thanks, @dineshbhat. Postindustria (IAB Tech Lab member) supports defining commitment.amount (§ 5.6.1). Two parts conflict with other open change requests:

    1. Fees as pricing[] entries. The text says a seller cost "appears as its own pricing[] entry and is included in amount". Our cost-method change request (#94) makes entries alternatives: "The buyer commits under exactly one". As @aleksUIX notes, a fee there is another choice, not a charge. Selected delta_flat options (§ 3.1 Selectable structure) carry optional seller charges, as PR #117 proposes. A mandatory charge, such as production, still needs a home.
    2. Gross or net. amount is "priced at pricing[].agreed_rate" and excludes "agency commission". That holds only if agreed_rate is net of commission. BCN's ordered adjustments change request (#103) makes it the rate before commission: in the print example (#102), agreed_rate is 20,900 and seller_rate is 17,765, after 15% agency commission. They can't both hold. Our revision on #94 avoids the choice: amount uses the same terms as agreed_rate, whichever basis the working group picks.

    Open questions:

    1. How should a mandatory seller charge, such as production or data, be represented: as a § 3.1 option the buyer must select (§ 3.1 has max_select but no minimum today), as a fee object on the line item, or inside the unit rate? The fee-basis PR (#117) leaves this open.
    2. Should pricing[].agreed_rate be gross of agency commission, as the ordered adjustments change request (#103) proposes, so that a commission-exclusive amount is priced at the rate after commission, or net of it, as this issue reads it? Open question 3 in our reply on #30 adds a third option: a rate_basis declared per pricing[] entry.

    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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions