Seller Pricing for Curation Rebates: How SSPs Neutralize Buyer-Side Discounts Without Penalizing Publishers

A practical playbook for SSPs to protect publisher yield while accommodating buyer curation rebates, with math, code, and governance for web, app, and CTV.

Seller Pricing for Curation Rebates: How SSPs Neutralize Buyer-Side Discounts Without Penalizing Publishers

Seller Pricing for Curation Rebates: How SSPs Neutralize Buyer-Side Discounts Without Penalizing Publishers

Curation changes who packages inventory and data, who operates the deal, and who pays which fees. It does not have to change the publisher’s net revenue. As curation moves deeper into the sell-side, more buyers receive rebates or discounts on curated deal traffic. The instinctive fear on the supply side is that these buyer-side concessions leak value from the publisher. The smarter view is different. Seller pricing can systematically neutralize buyer rebates so that publishers remain whole, while buyers still realize the value that curation brings. This article lays out a practical, data-driven playbook for SSPs, supply platforms, and publisher monetization leaders. We cover the economics, the math, the operational controls, and the governance signals that make rebate-neutral pricing work across web, app, and CTV. We keep the guidance grounded, with formulas, code samples, and checklists you can implement. Along the way, we reference relevant industry standards and analyses to anchor these recommendations in the evolving market context.

Why This Matters Now

Curation has evolved from a buy-side packaging tool into a sell-side lever for scale and predictability. Many curated deals carry fees or rebates that are paid outside the impression clearing price. Industry coverage shows that these fees often resemble existing take rates that already exist in the programmatic supply chain, yet concerns persist about compounding costs and opaque pricing AdExchanger coverage of curation fees, PubMatic commentary. At the same time, marketers and agencies continue to demand greater transparency in fees, paths, and outcomes, as highlighted by the ANA’s programmatic transparency work and log-level analysis of open web supply paths ANA Programmatic Media Supply Chain Transparency Study. Put simply, buyers will ask for curation and will negotiate rebates where they can, especially for data-rich packages and preferred paths. Supply platforms need pricing controls that protect publisher yield without stalling demand.

Definitions and Scope

To avoid confusion, let us align on terminology used in this article.

  • Curation: Packaging of supply with audience, context, or quality filters, often producing curated deals or deal IDs that aggregate inventory from multiple publishers or channels.
  • Buyer-side curation rebate: A discount or rebate provided by a curator or supply platform to a buyer or agency, typically calculated as a percent of spend, sometimes paid off-invoice or post-campaign.
  • Seller pricing: The policy and algorithms that determine floors, reserve, and fees applied by the SSP or supply platform on a given path or deal.
  • Publisher net: The publisher’s revenue per impression or per thousand impressions after all platform fees and discounts.
  • Neutralization: Adjusting seller pricing so that the publisher net is preserved, even when the buyer receives a curation rebate.

In scope: open exchange, private marketplaces, curated deals, programmatic guaranteed with curated overlays, across display, mobile in-app, and CTV. Out of scope: agency AVB accounting, non-programmatic volume bonuses, and direct IO rebates outside programmatic rails. We address them only where they intersect curated programmatic.

The Economic Problem, In One Diagram

Imagine a curated deal with a published CPM of 10. The curator rebates 10 percent to the buyer. If nothing else changes, the buyer nets a CPM of 9. If the SSP fee remains constant, the publisher is likely to realize less than planned, because the clearing price often compresses in first-price auctions and buyers target net outcomes. If we want the publisher to still realize, say, 8 net CPM, we need to set seller-side pricing so that, after the buyer’s 10 percent rebate and the SSP fee, the publisher net stays 8. That requires a gross-up. We can express this in a simple formula:

  • Let PN be the target publisher net CPM.
  • Let F be the SSP fee rate, expressed as a fraction of gross clearing price.
  • Let R be the buyer rebate rate, also as a fraction of gross.
  • Let G be the required gross clearing price to meet PN. Then: G = PN / ((1 - F) * (1 - R)) This is the backbone of rebate neutralization. The challenge is how to apply it in real time, consistently, and fairly across deals and channels.

    The Industry Context: Curation Growth, Transparency Demands

    Sell-side curation has grown quickly, with SSPs operating or partnering with curation layers to package inventory and data for buyers. Industry commentary suggests that curated deals often carry fees similar to SSP take rates, not necessarily additive in every case, but the perception of compounding costs is strong AdExchanger explainer on sell-side curation. Transparency mechanisms like ads.txt, app-ads.txt, sellers.json, and the OpenRTB SupplyChain Object help buyers see who is selling or reselling inventory IAB Tech Lab ads.txt, IAB Tech Lab sellers.json, IAB Tech Lab Supply Chain and Foundations overview. These do not encode fees or rebates, but they provide the structural visibility needed to reason about who is in the path. Meanwhile, marketers’ calls for log-level transparency, supply path rationalization, and better outcomes have intensified ANA study overview. In that climate, supply platforms should meet buyers halfway with clarity and predictable pricing policies that protect publishers.

    A Seller Pricing Playbook That Neutralizes Buyer Rebates

    Below is a practical approach used by leading SSPs and supply platforms to keep publisher net whole when buyers receive curation rebates.

    1) Start With Publisher-Net Guardrails

    The most important control is a publisher-net floor, not a gross floor. You can support either a publisher-net floor or a mapping that stores per-deal publisher-net targets.

    • Publisher-net floor: The minimum net CPM a publisher will accept, after all SSP fees and rebates.
    • Net target per deal ID: A configuration that stores the PN target for a given curated deal, taking into account any data fees or buyer-side rebates.

    Compute gross reserve based on the PN and any known fee stack. If R changes dynamically by buyer, you can compute a conservative gross that accommodates the highest likely R for that deal.

    2) Gross-Up Logic, With Explicit Rebate Parameters

    Use the gross-up formula and include it directly in the deal pricing policy. Where the curator discloses rebate terms, use them. Where they do not, estimate from post-campaign netting.

    • Formula: G = PN / ((1 - F) * (1 - R))
    • Constraints: Cap G based on market reference prices to avoid demand collapse.
    • Overrides: Allow commercial overrides for strategic buyers or sponsorships.

    3) Fee Replacement, Not Fee Stacking

    If the SSP is the curator or pays the curator’s rebate, replace part of the SSP fee with the curation expense rather than stacking it on top. This is the cleanest way to prevent publisher harm and avoid compounding costs.

    • One pot: Treat curation rebates as a cost inside the SSP margin envelope, not as an add-on.
    • Disclosure: Explain this model in commercial terms to publishers and buyers. Reduce fear and confusion.

    Industry coverage suggests curation fees often mirror take rates. A replace-not-stack policy aligns with that reality and removes fuel from fee compounding narratives AdExchanger coverage.

    4) Dynamic Floors Tied To Effective Net, Not Static Deals

    Static deal prices are fragile in the face of bid shading and netting. For open exchange and many PMPs, you can implement dynamic floors based on expected net outcomes.

    • Context signals: Device, geography, ad size, media type, channel, content quality, and seasonality.
    • Deal metadata: Curator identity, declared fee or rebate rate, and buyer-level negotiation flags.
    • Market feedback: Realized win rates, bid density, and observed buyer net CPMs.

    When the model predicts lower win probability at a given gross-up, it can step down to avoid halting demand while still protecting PN through other means, like take-rate replacement.

    5) Per-Buyer Netting Policies

    Many rebates are buyer-specific. Create buyer profiles with expected R values by curator and channel. Apply the highest expected R when setting gross reserves unless you can deterministically identify the buyer at bid time. In some integrations, buyer identity is known at the deal level. In others, it emerges in post-auction logs. Use both to refine estimates.

    6) Clear Governance, Transparency, and Documentation

    Do not guess. Document how curation rebates are handled for each deal. Provide line-of-sight to publishers. Use sellers.json and schain to expose the operational path, then use out-of-band reporting to explain fees.

    • Sellers.json: Identify the entities selling and reselling inventory [IAB Tech Lab sellers.json](https://iabtechlab.com/sellers-json/).
    • SupplyChain Object: Show each node in the transaction path [IAB Tech Lab Supply Chain overview](https://iabtechlab.com/standards/supply-chain-foundations/).
    • Out-of-band fee transparency: Report net outcomes to publishers and explain whether curation costs replaced or stacked relative to SSP margin.

    The Math, In Detail

    Let us define all variables precisely, then derive the formulas you will implement.

    • PN: Target publisher net CPM.
    • Fssp: SSP fee rate on gross clearing price.
    • Fother: Other embedded fees paid by the SSP on behalf of the seller path, excluding curation rebates, for example exchange routing or payment rails. Often zero for most SSPs.
    • Rcur: Buyer-side curation rebate rate. This is the portion of gross paid back to the buyer by the curator or the SSP-as-curator.
    • G: Gross clearing price or effective price paid by the buyer at the impression level.

    Publisher net: PN = G (1 - Fssp - Fother) - any per-impression fixed costs If rebate is independent from publisher net, buyer nets: Buyer net CPM = G (1 - Rcur) To keep PN intact, and when you treat Rcur as part of the margin envelope, you have two main models.

    Model A: Rebate Considered Outside SSP Margin, Use Gross-Up

    In this model, PN must be maintained even when the buyer pays less net due to Rcur. The publisher does not care about buyer net. We solve for G: G = PN / (1 - Fssp - Fother) But, if buyers will lower bids to target the same net outcome, you must gross-up further to offset Rcur influence on bid strategies. The conservative approach is: G = PN / ((1 - Fssp - Fother) * (1 - Rcur)) This is the approach if your trading data confirms that buyer netting behavior pushes down bids commensurate with Rcur.

    Model B: Rebate Paid From SSP Margin, Replacement, Not Stacking

    If the SSP pays the rebate and chooses to replace a portion of its fee with that rebate, then Fssp’ = Fssp - Rcur. In that case: G = PN / (1 - Fssp’ - Fother) = PN / (1 - (Fssp - Rcur) - Fother) This keeps the buyer happy and the publisher whole without raising G. The SSP earns less margin on that traffic, which can be acceptable in exchange for higher volume and stickier demand. Which model to use depends on commercial goals and market elasticity. Many platforms adopt a hybrid: Model B for strategic buyers and high-value curated paths, Model A where rebates are opaque or strictly buyer-side.

    Code Samples You Can Adapt

    Below are small, production-friendly starters to operationalize these models.

    Python: Gross-Up Calculator With Safety Rails

    from dataclasses import dataclass
    from typing import Optional
    @dataclass
    class PricingInputs:
    publisher_net_cpm: float         # PN
    ssp_fee_rate: float              # Fssp, 0.0 - 1.0
    other_fee_rate: float = 0.0      # Fother, 0.0 - 1.0
    rebate_rate: float = 0.0         # Rcur, 0.0 - 1.0
    model: str = "gross_up"          # "gross_up" or "replace"
    max_gross_cpm: Optional[float] = None
    min_gross_cpm: float = 0.01
    def compute_gross(inputs: PricingInputs) -> float:
    pn = inputs.publisher_net_cpm
    fssp = inputs.ssp_fee_rate
    fother = inputs.other_fee_rate
    rcur = inputs.rebate_rate
    if inputs.model == "replace":
    # Replace SSP fee with rebate - no stacking
    effective_fee = max(0.0, fssp - rcur) + fother
    denom = max(0.0001, 1.0 - effective_fee)
    else:
    # Conservative gross-up to offset rebate-driven bid compression
    denom = max(0.0001, (1.0 - fssp - fother) * (1.0 - rcur))
    gross = pn / denom
    gross = max(inputs.min_gross_cpm, gross)
    if inputs.max_gross_cpm is not None:
    gross = min(inputs.max_gross_cpm, gross)
    return round(gross, 4)
    # Examples
    print(compute_gross(PricingInputs(8.0, 0.15, rebate_rate=0.10, model="gross_up")))
    print(compute_gross(PricingInputs(8.0, 0.15, rebate_rate=0.10, model="replace")))

    SQL: Post-Auction Audit Of Publisher Net Versus Targets

    -- Given impression logs with these fields:
    --   gross_cpm, ssp_fee_rate, other_fee_rate, buyer_rebate_rate, publisher_id, deal_id, channel, timestamp
    -- Compute realized publisher net CPM and compare to target per deal.
    WITH realized AS (
    SELECT
    publisher_id,
    deal_id,
    channel,
    DATE_TRUNC('day', timestamp) AS day,
    AVG(gross_cpm) AS avg_gross_cpm,
    AVG(gross_cpm * (1 - ssp_fee_rate - other_fee_rate)) AS avg_publisher_net_cpm,
    AVG(buyer_rebate_rate) AS avg_rebate_rate,
    COUNT(*) AS imps
    FROM impression_logs
    WHERE timestamp >= NOW() - INTERVAL '30 days'
    GROUP BY 1,2,3,4
    ),
    targets AS (
    SELECT
    deal_id,
    publisher_id,
    target_publisher_net_cpm
    FROM deal_targets
    )
    SELECT
    r.publisher_id,
    r.deal_id,
    r.channel,
    r.day,
    r.avg_gross_cpm,
    r.avg_publisher_net_cpm,
    t.target_publisher_net_cpm,
    (r.avg_publisher_net_cpm - t.target_publisher_net_cpm) AS net_delta,
    r.avg_rebate_rate,
    r.imps
    FROM realized r
    LEFT JOIN targets t
    ON r.deal_id = t.deal_id
    AND r.publisher_id = t.publisher_id
    ORDER BY r.day DESC, r.publisher_id, r.deal_id;

    JSON Policy: Deal-Level Configuration For Rebate-Neutral Floors

    This is not an IAB standard, only an internal policy pattern you can store and apply in your exchange or adapter.

    {
    "deal_id": "curated-abc-123",
    "publisher_id": "pub-789",
    "channel": "web",
    "target_publisher_net_cpm": 8.00,
    "ssp_fee_rate": 0.15,
    "other_fee_rate": 0.00,
    "rebate_policy": {
    "mode": "gross_up",
    "default_rebate_rate": 0.10,
    "buyer_overrides": {
    "buyer-555": 0.12,
    "buyer-888": 0.08
    },
    "max_gross_cpm": 18.00
    },
    "metadata": {
    "curator": "curation_partner_xyz",
    "notes": "Publisher-net must be preserved; use gross-up for buyers with rebates."
    }
    }

    Where Industry Standards Help, And Where They Do Not

    Standards improve transparency but do not carry price or fee information.

    • ads.txt and app-ads.txt authenticate selling rights [IAB Tech Lab ads.txt](https://iabtechlab.com/ads-txt/).
    • sellers.json exposes seller and intermediary identities [IAB Tech Lab sellers.json](https://iabtechlab.com/sellers-json/).
    • SupplyChain Object shows the nodes between publisher and buyer [IAB Tech Lab Supply Chain and Foundations](https://iabtechlab.com/standards/supply-chain-foundations/).

    None of these include fee or rebate fields. A few platforms use vendor-specific OpenRTB extensions to pass curation fee hints, but there is no cross-ecosystem standard. Do not wait on a fee-disclosure standard to protect your publishers. Build policy now, disclose outcomes in reporting, and adopt standards to show path identity.

    Web, App, And CTV: Channel-Specific Tactics

    Web

    Web inventory typically benefits from dynamic floors at the ad unit and deal level. Use historical bid density to avoid over-grossing in fragile segments. Maintain publisher-net guardrails across open auction and curated PMPs.

    • Signal depth: URL, content category, viewability history, and context signals inform net targets.
    • Deal routing: Multiple curated deals may compete. Apply the same publisher-net baseline across them.

    Mobile In-App

    SDK mediation layers and demand waterfalls can blur visibility into net outcomes. Use app-ads.txt to confirm authorized resellers. Where the path includes multiple intermediaries, widen your other-fee estimates and use post-logs to refine.

    • SDK constraints: Some floors must be set per ad unit or per mediated network. Map your policy to the control surface you have.
    • Latency tolerance: Compute floors close to the edge to avoid timeouts. Cache per-buyer adjustments where possible.

    CTV

    CTV often trades on fixed prices or deal-specific minimums. That actually helps. If a buyer negotiates a curation rebate, use Model B fee replacement when the SSP funds it, or set fixed price to a gross that preserves the publisher net.

    • Fixed-price deals: Bake the gross-up into the deal rate if the buyer’s rebate is known.
    • Household identity: Avoid tying floors to user-level IDs. Anchor on content, device class, and supply partner guidelines for privacy-by-design.

    Emerging analyses suggest the number of authorized CTV paths per publisher has grown, which amplifies the importance of path governance and consistent net targets across curated deals CIMM reference on CTV programmatic dynamics.

    Instrumentation And KPIs

    Rebate-neutral pricing is only as good as your measurement. Track these leading indicators.

    • Publisher net attainment: Share of impressions meeting or exceeding PN target.
    • Bid density: Average bids per request and change after gross-up.
    • Win rate: Monitor for demand collapse at higher gross. Step back if necessary.
    • Buyer net: Where available, estimate buyer net CPM after rebate to gauge elasticity.
    • Fill and revenue: Publisher fill rate and realized revenue per session, page, or stream.
    • Churn risk: Publisher churn flags when net attainment drops, even if top-line grows.

    Governance And Communication

    Policy is only half the battle. Trust is the other half.

    • Publisher communications: Explain net protection, show math, share logs. Publishers need clarity when curated deals are added to their mix.
    • Buyer disclosures: Without revealing confidential terms, explain your neutralization model. Buyers care about predictability.
    • Internal controls: Require deal desk sign-off when overriding PN or rebate policies.
    • Audit cadence: Quarterly audits of PN attainment at publisher and deal levels.

    The ANA’s transparency agenda sets a high bar. Supply platforms that can show their work win credibility with both sides of the market ANA transparency hub.

    Common Pitfalls And How To Avoid Them

    • Stacking fees: Charging a full SSP margin and then paying a separate curation rebate on top, without compensating adjustments, erodes publisher net. Use fee replacement where you control the rebate purse.
    • Static assumptions: Rebate rates vary by buyer, curator, and season. Refresh assumptions monthly, or faster for top buyers.
    • Over-grossing: High gross floors can throttle demand. Use market references and cap gross CPM to preserve bid density.
    • Opaque policies: Without documentation, publishers assume the worst. Share policies and outcomes, not just slogans.
    • One-size-fits-all: Web, app, and CTV behave differently. Tune by channel and by path.

    A Red Volcano View: Data Intelligence As The Foundation

    Red Volcano focuses on supply-side data intelligence that makes these policies possible at scale.

    • Publisher and path mapping: Track authorized sellers and resellers through ads.txt, app-ads.txt, and sellers.json. Identify where curated nodes sit in schain.
    • Technology stack tracking: Understand which SSPs, SDKs, and CTV platforms are in play to calibrate fee and latency assumptions.
    • Deal intelligence: Surface curated deal taxonomies and demand partner behavior, so your pricing models use real path dynamics, not guesswork.
    • Measurement: Provide dashboards that reconcile publisher net targets with realized outcomes across web, app, and CTV.

    When supply teams know which curated paths drive incremental demand and which simply reroute existing bids, net-protective pricing becomes both more aggressive and more accurate.

    Implementation Checklist

    Use this as a go-live guide.

    • Policy: Adopt PN-first guardrails, choose Model A, Model B, or hybrid, document exceptions.
    • Data: Centralize deal metadata, buyer identities, curator identities, and estimated rebates by channel.
    • Computation: Implement the gross-up calculator, integrate with floor engines, and set caps by segment.
    • Standards: Keep ads.txt, app-ads.txt, sellers.json current. Provide accurate schain on every request.
    • Reporting: Launch PN attainment and bid density dashboards, run monthly reviews with publishers.
    • Feedback: Run A/B tests on gross-up levels, measure elasticity, tune quarterly.

    Frequently Asked Questions

    Will buyers reduce bids if we gross-up to neutralize rebates?

    Sometimes yes, sometimes no. If buyers target a net eCPM, gross-up often triggers bid shading. This is why Model B, fee replacement, is powerful when you are the curator or fund the rebate. Otherwise, cap gross CPMs and test in-flight.

    How do we handle undisclosed rebates?

    Use conservative estimates based on post-campaign netting and buyer history. Apply higher gross for buyers with a track record of aggressive netting, then ratchet down when measurement shows unnecessary friction.

    Is there a risk of price discrimination concerns?

    Set policies that are principled and documented. Different prices by path or deal are common in programmatic. Avoid collusion, avoid sharing competitor pricing intelligence, and focus on transparent guardrails that protect publisher net and encourage quality demand.

    Can we encode fees in schain?

    The standard schain object does not carry fee fields. Some vendors pass fee hints via private OpenRTB extensions. Use out-of-band reporting to document fee replacement or gross-up policies while the industry discusses standard approaches IAB Tech Lab overview.

    A Short Case Study, With Numbers

    A mid-size CTV network targets an 18 net CPM for a sports package. The SSP fee is 15 percent. A curator offers a 10 percent rebate to a large buyer.

  • Model A gross-up: G = 18 / ((1 - 0.15) (1 - 0.10)) = 18 / (0.85 0.90) ≈ 23.53 Buyer nets 21.18 after rebate. Publisher nets 18. Win rates drop 5 percent. Fill holds.
  • Model B replacement: Effective fee becomes 0.15 - 0.10 = 0.05. G = 18 / (1 - 0.05) ≈ 18.95. Buyer nets 17.05 after rebate. Publisher nets 18. Demand is stronger due to lower gross, SSP margin compresses by 10 points. The network decides to use Model B for this buyer and this package, financed by a broader commercial relationship, because audience scale on live sports justifies margin trade-offs.

    Final Guidance

    Curation rebates are not a crisis for the sell-side. They are a catalyst for better pricing controls and clearer governance. If you protect publisher nets, replace fees rather than stack them when you can, and measure relentlessly, you will convert curation from a revenue leak into a demand amplifier. The buyers will appreciate predictability. The publishers will respect your discipline. Red Volcano’s role is to make the data clarity part easy. With better path and publisher intelligence, you can deploy rebate-neutral pricing with confidence and keep your focus on growth, not firefighting.

    References And Further Reading

  • AdExchanger, Publishers: Do not fear curation fees, they resemble existing ad tech tax structures: https://www.adexchanger.com/programmatic/publishers-dont-fear-curation-fees-theyre-just-the-same-old-ad-tech-tax/
  • AdExchanger, AdExplainer on the rise of sell-side curation: https://www.adexchanger.com/adexplainer/adexplainer-the-rise-of-sell-side-curation/
  • AdExchanger, PubMatic weighs in on curation fees: https://www.adexchanger.com/platforms/pubmatic-weighs-in-on-the-debate-around-curation-fees/
  • IAB Tech Lab, ads.txt and app-ads.txt specifications: https://iabtechlab.com/ads-txt/
  • IAB Tech Lab, sellers.json specification: https://iabtechlab.com/sellers-json/
  • IAB Tech Lab, Supply Chain and Foundations overview: https://iabtechlab.com/standards/supply-chain-foundations/
  • ANA, Programmatic Media Supply Chain Transparency Study: https://www.ana.net/miccontent/show/id/rr-2023-12-ana-programmatic-media-supply-chain-transparency-study
  • Jounce Media, State of the Open Internet 2024 (market insights on supply path and curation): https://jouncemedia.com/build/resources/Jounce_2024_State_Of_The_Open_Internet_4fbe2e7b6e.pdf

    Conclusion

    Curation is reshaping the supply side in visible and invisible ways. The visible part is the proliferation of curated deals and paths. The invisible part is the money flow, including rebates that may never appear in a bid request. Seller pricing can make the invisible visible in outcomes. Protect publisher nets as a first principle. Choose fee replacement over fee stacking. Use robust math, not gut feel. Instrument everything. Communicate openly. Do this, and curation becomes a force multiplier for the sell-side rather than a tax. The result is a healthier, more transparent marketplace where publishers invest in quality, buyers find efficient paths, and the intermediaries who add real value are rewarded.