The Real Cost of Programmatic “Leakage” — Auditing Where Your Ad Rupee Actually Goes
Every media agency in India can produce a slide that says something like “78% of your budget reached working media.” Almost none can produce the log file that proves it. That gap — between the number in the quarterly business review and the evidence underneath it — is where most programmatic leakage actually hides, not in some single villainous fee but in the simple fact that almost nobody ever asks to see the receipts. Auditing a programmatic supply chain is not a mysterious or exotic exercise. It is closer to a financial reconciliation, the kind a CFO would recognise instantly. The reason so few brands have done one properly is not technical difficulty. It is that nobody has told them, concretely, what to ask for and in what order.
So set aside, for a moment, the well-worn statistics about the “adtech tax” and the unknown delta. Assume you already believe leakage exists — most marketers past a certain budget size do, if only instinctively. The more useful question is procedural: if you were handed a mandate tomorrow to find out exactly what happened to last quarter’s programmatic spend, where would you start, what would you ask for, and how would you know if the answer you got back was actually true?
The starting point, almost universally skipped, is the audit permission letter. Most marketers assume they already have the right to see impression-level data from their DSP and SSP partners because they are, after all, the ones paying for it. In practice, most standard vendor contracts do not grant that right explicitly, and platforms are understandably reluctant to hand over granular logs without a documented basis for doing so — both to protect their own commercial terms with other clients and, in some cases, because the data genuinely implicates a chain of resellers who never agreed to be exposed. A written audit permission letter, specifying exactly what data is being requested, for what period, and for what purpose, is the unglamorous first document that separates a real audit from a request that quietly dies in a vendor’s inbox for six weeks. Any brand serious about this should build the clause into the contract itself, at renewal, rather than negotiating access after the fact when leverage is weaker.
Once access exists on paper, the actual pull needs to happen at the same granularity on both sides of the transaction: the DSP’s bid and spend logs, and the SSP’s impression and revenue logs, both down to the individual impression where possible, both covering the identical time window. This sounds obvious and is routinely botched. Marketing teams frequently pull a DSP report showing total spend and a publisher-reported revenue figure and treat the gap between them as “leakage,” without accounting for the fact that the two numbers were never measuring the same thing to begin with — different attribution windows, different currency conversion timestamps, different definitions of a billable impression. A real audit matches records at the individual bid-request level using a shared identifier, typically a bid ID or auction ID that both platforms log, because that is the only way to distinguish genuine supply chain cost from an accounting mismatch dressed up as one.
This is where most in-house teams hit their first real wall, and it is worth naming plainly: matching bid-level logs across platforms with inconsistent schemas, time zones, and currency formats is a data engineering task, not a spreadsheet task. It typically requires either a dedicated analytics resource capable of writing the reconciliation logic, or a third-party verification and audit specialist who has built this matching pipeline before and can run it against a brand’s specific stack. Brands that skip this step and instead rely on the aggregate numbers each platform self-reports are, in effect, asking each party in a multi-party transaction to grade its own homework. The resulting audit is not wrong exactly — it is simply not an audit.
Once matched data exists, the next task is walking the supply path itself, hop by hop, for a representative sample of impressions rather than the entire dataset — full-volume reconciliation is expensive and, for most audit purposes, unnecessary once a pattern is established. This is where ads.txt and sellers.json earn their keep. Cross-referencing the declared sellers against what actually shows up in the bid stream reveals whether an impression travelled a clean, direct path from publisher to DSP, or whether it was re-sold through one or more intermediaries who added a fee without adding any value an advertiser would recognise. In the Indian market specifically, this step tends to surface a particular pattern: regional publishers and smaller app developers, who individually lack the scale to negotiate direct SSP relationships, often route through aggregators who bundle their inventory together. That bundling is not inherently a problem — it is how long-tail publishers access demand at all — but each bundling layer is a toll booth, and an audit should be able to say precisely how many toll booths a given impression passed through and what each one charged, rather than accepting “a small aggregation fee” as an explanation with no attached number.
Currency is a second India-specific complication worth building into the audit methodology from the outset rather than discovering midway through. A meaningful share of programmatic demand in India still flows through global DSPs that price in dollars, while the supply side transacts in rupees. Every conversion between the two is a point where cost and opacity both quietly increase — the conversion rate applied, and when exactly in the transaction cycle it was applied, can shift the reconciled numbers by a nontrivial margin if not standardised across the audit. Any team running this exercise should fix a single conversion methodology at the outset and apply it consistently, rather than trusting whatever rate each platform used internally, which may not be disclosed at all.
With the matched, path-mapped data in hand, the audit’s real output is not a single leakage percentage — that number, however satisfying it looks in a boardroom deck, tends to flatten a genuinely uneven picture. The more useful output is a breakdown by supply path: which routes are clean, direct, and low-cost, and which routes are long, multi-hop, and quietly expensive. In most audits conducted with real rigour, leakage does not turn out to be evenly distributed across a media plan. It concentrates in a handful of specific paths — often the open exchange inventory bought programmatically without curation, or a particular category of long-tail app inventory — while direct, curated deals with premium publishers come back looking comparatively clean. That distinction changes what a marketing team actually does with the findings. An even, industry-wide leakage number invites a shrug. A concentrated finding — “40% of our open-exchange spend is going through paths with three or more resellers, while our private marketplace deals are essentially clean” — invites an actual decision about where to reallocate budget.
It is worth being honest about where audits like this typically stall, because the failure mode is rarely dramatic. It is usually a permissions bottleneck: a DSP partner citing standard data-sharing terms as a reason to provide only aggregate figures rather than granular logs, or an agency trading desk — sometimes the very party whose fee structure the audit would scrutinise — positioned as the intermediary responsible for requesting the data on the brand’s behalf, with predictably limited enthusiasm for chasing it down quickly. Neither obstacle is insurmountable, but both are reasons an audit mandate needs genuine authority behind it, ideally sponsored at a level senior enough that a platform partner cannot simply wait it out. Marketing teams who have pushed these audits through successfully describe the negotiation less as a technical conversation and more as a governance one: making clear that supply path transparency is now a contractual expectation, not a courtesy.
The other quiet failure mode is treating the audit as a one-time event rather than a standing discipline. A single quarter’s reconciliation tells you what happened in that quarter. It does not tell you whether a supply path that looked clean in March is still clean in September, because supply chains are not static — new resellers enter, existing relationships between SSPs and aggregators shift, and inventory quality drifts without anyone actively monitoring it. The marketing teams getting genuine, compounding value out of this exercise are the ones who have built it into a recurring cadence, even an imperfect quarterly pass, rather than commissioning an expensive one-off study, presenting the findings once, and then returning to trusting the platform-reported numbers for the next eighteen months.
There is a final, less technical piece worth building into any audit mandate from day one: what happens to the findings. An audit that produces a precise, well-evidenced leakage figure and then sits in a deck nobody revisits has answered the wrong question. The useful version of this exercise ends not with a percentage but with a renegotiated set of supply paths, a tightened list of approved resellers, and — where the findings justify it — a genuinely uncomfortable conversation with a trading desk partner about whether its fee structure still makes sense given what the data actually shows. That conversation is the entire point of doing the audit in the first place. Everything before it is just the paperwork required to have it with confidence.
