Skip to main content

Overview

A house discount is a structured rate-card discount you set for a buyer, applied at product discovery. Every buy carries two buyer identities — the brand (the advertiser) and the operator (the agency or DSP doing the buying) — so a discount declares which axis it applies to: Each axis resolves up the buyer’s own brand hierarchy (from its published brand.json), so one row covers a whole corporate family:
  • “Coke gets 20%” → a brand discount on coke.com
  • “the whole Nike family gets 12%” → a brand discount on nike.com (reaches a Converse buy: converse.com → nike.com)
  • “everything GroupM buys gets 8%” → an operator discount on groupm.com
This is the structured home for buyer discounts. For the narrower cases a single entity can’t express — a discount that requires a specific operator and brand together, country-specific terms, or freeform negotiation notes — use a buyer instruction instead.

How a discount is chosen

At discovery the buy’s brand and operator are each resolved up their hierarchy. A brand-scoped discount can only match the brand chain; an operator-scoped one only the operator chain. Two rules then pick the winner:
  • Nearest ancestor wins. A discount on the exact entity beats one on its house; a closer parent beats a more distant one. A parent never overrides a more specific descendant — set a discount on nike.com and another on converse.com, and a Converse buy takes the Converse rate.
  • Larger discount wins across axes. When both a brand discount and an operator discount match a buy, the buyer gets the larger of the two — brand and operator are independent buyer identities, so neither hides a better deal from the other. (e.g. a coke.com brand discount of 10% and a wpp.com operator discount of 20% on a WPP-buying-Coke buy yields 20%.) A tie resolves to the brand axis.
A node with no discount of its own inherits the nearest ancestor that has one, on its axis.
Operator-axis resolution needs the agency/holdco to publish a resolvable brand.json corporate hierarchy (so groupm.com → wpp.com resolves). Many agencies don’t. When an operator’s family can’t be resolved, key the discount on the exact operator domain you want it to apply to rather than a parent holdco.

Composition with buyer instructions

A buy can also match a buyer instruction. Whenever more than one discount matches a buy — across axes or across rails — the buyer gets the larger one. Because a house discount isn’t tied to an identified buyer, it also applies to anonymous (no-account) discovery; a buyer instruction never does.

The wholesale floor

Every quote is floored at the storefront’s wholesale cost. A discount can reduce a price toward that floor but never below it: a 40% discount on a 35quotewhoseflooris35 quote whose floor is 25 yields **25,not25**, not 21. Discounts never price inventory under cost.

Isolation

Discounted quotes are cached per resolved entity, never on the shared public partition. A discount negotiated for the Nike house can never leak into the price another buyer — one whose brand does not roll up to that house — sees.

Fields

(houseDomain, scope) is unique per storefront — the same domain may carry both a brand discount and an operator discount.

Tasks

List house discounts

Read every discount on the storefront.

Create house discount

Add a brand or operator discount.

Update house discount

Change the discount or notes on a row.

Delete house discount

Remove a row by id.

Buyer instructions

Operator-and-brand intersections, country terms, and freeform notes.

Product discovery

Where discounts are applied as buyers compose products.