Skip to content
MCM & Compliance

Reading the Deductions: Why Your Ad Report Never Matches Your Payment

Estimated earnings and actual payments rarely agree — and in MCM there are specific, knowable reasons. Here is how to read the gap.

RD Developing Bee Research Desk 14 min read
ESTIMATED IVT UNFILLED FX + FEES PAID THE GAP IS KNOWABLE every step has a name

Every publisher has had this month. The dashboard said one number all through it. The payment arrived at a different one. Nobody explained the difference, and asking produced a sentence about "estimated versus finalised" that answered nothing.

The gap is real, it is normal, and — this is the part nobody tells publishers — it is itemisable. Every rupee of the difference has a name. A partner who cannot name them is either not looking or would rather you did not.

Start here: estimated is not a forecast

The most common misunderstanding is treating the in-month number as a prediction that turned out slightly wrong. It is not a prediction. It is a running total computed before several subtractions have happened, and it is generous by construction — it counts everything that has not yet been disqualified.

So the gap is not error. It is process. The useful question is never "why was the estimate wrong" but "which of the known deductions applied, and how much was each".

Estimated earnings what the dashboard showed all month − Invalid traffic filtered live, at finalisation, or up to 60 days after payment − Unfilled impressions counted in Ad Manager, never earned anything ± Gross vs net Programmatic Direct reports gross; other types report net ± Currency + time zone parent and child networks may differ on both − Revenue share per the MCM auto-payment percentage, by revenue TYPE = What arrives the number worth reconciling against
Every step between the in-month number and the payment has a name. A reconciliation conversation that cannot attribute the difference to these lines is not a reconciliation, it is an assertion.

Why this matters more than it sounds

An unexplained gap is not merely annoying. It has three concrete costs that compound over a year.

It makes cash flow unplannable. A publisher paying salaries against a number that can move downward after the fact is carrying working-capital risk they never priced, and small publishers are the least able to absorb it.

It makes partner comparison impossible. If you cannot decompose the difference, you cannot tell whether Network A genuinely pays better than Network B or simply reports more optimistically. The opacity protects whoever is worse.

And it corrodes the relationship slowly. Every unexplained month adds a little suspicion, until a publisher who is being treated perfectly fairly starts assuming they are not — which is a bad outcome for both parties and entirely avoidable with an itemised statement.

Three words people use interchangeably, and should not

Half the reconciliation arguments in this industry are two people using the same word for different quantities. Worth settling before anything else:

  • RPM — revenue per thousand pageviews. A publisher-side number. It includes every impression on the page, and it moves when you change your layout even if nothing about demand changed.
  • eCPM — effective revenue per thousand impressions. A unit-side number. One page with four ad slots produces four impressions and one pageview, so RPM and eCPM on the same inventory differ by roughly the slot count.
  • EPC — earnings per click. Rarely useful on its own and easily distorted by a small denominator, but it is the number that moves first when placements start generating accidental clicks.

If a partner quotes "your CPM was ₹X" and you compute a different figure, check which denominator each of you used before assuming anyone is wrong. This is the most common false alarm in the entire subject.

The MCM-specific causes

If you are represented by a network, four things apply that do not apply to a standalone publisher, and they account for most of the confusion.

Child reports may already include deductions

A child publisher looking at their own reporting is seeing estimated earnings that may already have some deductions applied — and not necessarily the same ones the parent sees at the same moment. Two people can look at "the number" on the same day and both be reading accurately while disagreeing.

Time zones

Parent and child networks can be configured to different time zones. A "day" is therefore not the same twenty-four hours on both sides, which means a month is not the same month. At the boundaries this produces differences that look like missing money and are actually a calendar.

This is the single most common cause of a small, persistent, unexplained gap, and it is entirely resolvable by checking one setting on each side.

Currency conversion

Where the parent network operates in a different currency from the child, conversion happens at rates and on dates that are rarely visible in either report. For an Indian publisher paid by a network reporting in dollars, exchange movement inside a month can be a meaningful share of the difference — and it is not anyone's fault, which makes it uniquely frustrating.

Gross versus net, by transaction type

This one causes real disputes because it is genuinely counter-intuitive.

Reports show gross revenue for Programmatic Direct transactions — Preferred Deals and Programmatic Guaranteed — but net for other transaction types.

A publisher comparing a Programmatic Guaranteed line against an Open Auction line is therefore comparing two numbers that have had different things done to them. Averaging across them, or computing a blended revenue share from them, produces a figure that describes nothing.

What "already includes deductions" means in practice

Worth making concrete, because the phrase is doing a lot of quiet work.

Invalid traffic is removed at three separate moments. Some is filtered in real time and never appears in reporting at all. Some is removed at finalisation, which is why a month's figure can drop when it closes. And some is deducted up to sixty days after payment, arriving as a negative adjustment on a later statement.

So "your report already includes deductions" is true and incomplete. It includes the deductions that have happened so far. A number can be finalised and still not be final, which is the single most confusing property of this entire system and the reason a publisher should never treat any month as closed until roughly two months after it ended.

The general causes, which apply to everyone

Different ad servers count differently

Two ad servers measuring the same campaign will disagree, always. They count impressions at different moments in the delivery sequence and apply different invalid-traffic filtering. Neither is lying.

IAB measurement guidance treats a discrepancy above roughly 10% — with the lower of the two measurements controlling — as warranting reconciliation, and regards up to about 20% as within normal range for third-party comparisons.

~10–20%

The range IAB guidance treats as normal for third-party measurement discrepancies — over ~10% warrants reconciliation, up to ~20% is not itself evidence of a problem.

source: IAB measurement guidance on discrepancy reconciliation

Knowing this range is worth real money in negotiations, in both directions. It stops a publisher escalating over a 12% difference that is simply how measurement works — and it stops a partner waving away a 35% gap as "normal discrepancy", which it is not.

Unfilled impressions

Ad Manager counts impressions it attempted to fill, including ones that went unfilled. Those generate no revenue. Comparing a total impression count against revenue without excluding unfilled inventory produces an RPM that is wrong and a conclusion that is worse.

Overdelivery

Where a campaign delivers beyond its booked amount, the excess is frequently not charged to the buyer — and consequently not paid to the publisher. Impressions served, revenue zero. It looks like a discrepancy and is a contractual outcome.

Deal type decides what the number even means

Programmatic is not one thing, and the four transaction types report differently. This table is worth keeping somewhere findable:

Deal type How it is priced Reported as
Open auction Real-time bidding, anyone eligible Net
Private auction Invited buyers, still an auction Net
Preferred deal Fixed price, non-guaranteed volume Gross
Programmatic guaranteed Fixed price and fixed volume Gross

Two of the four report gross and two report net. A publisher with a mix — which is most publishers with any direct demand at all — has a revenue report where some lines have had the platform fee removed and some have not. Summing that column and dividing by impressions produces a blended eCPM that corresponds to no real quantity.

This is not obscure. It is the single most common reason a rev-share calculation and a payment disagree by a suspiciously round-looking percentage.

The calendar, because half of these are not problems at all

A great deal of anxiety in the first two weeks of a month is caused by not knowing the schedule.

  • Transactions for Open Bidding, AdX-for-Content, AdSense-for-Content and AdSense-for-Search, Programmatic Guaranteed and Preferred Deals arrive by roughly the 2nd of the month.
  • Payment information is typically ready around the 15th.

Which means a number checked on the 3rd and found alarming is frequently a number that is not finished. Knowing the calendar removes an entire category of false alarm, and it costs nothing to learn.

The split mechanics that confuse everyone

This section exists because revenue-share disputes in MCM are usually arithmetic disagreements rather than honesty problems, and the arithmetic has a specific trap in it.

The MCM invitation sets the manager's auto-payment percentage — how much of the child's earnings Google routes to the parent, from 0% to 100%. Two models behave differently:

  • Reseller / Platform Partner model: the percentage is always 100%. Google sends all child earnings to the parent, who then redistributes. In the child's reporting, "Child revenue share" shows 0.00 — which looks alarming and is simply how this model reports.
  • Regular MCM model: the percentage is anywhere from 0% to 100%, and Google splits the money directly between the parties.

The trap: not all revenue is in scope

Two exclusions cause most disputes, and both are easy to miss:

  • Partner bidding is excluded. The publisher keeps 100% of it.
  • Third-party revenue is not auto-paid to managers.

The fix is unglamorous: any revenue-share conversation should begin by agreeing which revenue types are in scope, in writing, before anyone computes a percentage.

Build your own record, monthly

The practical habit that ends most of this: keep a simple sheet, one row per month, with the estimated figure as of month-end, the finalised figure, the payment received, the date received, and a note for anything that explained a difference.

Six months of that turns "the numbers never match" into a pattern you can point at. Either the gap is stable and proportionate — which is the normal, boring answer and worth knowing — or it is growing, or it moves unpredictably, and both of those are questions with a specific shape rather than a general grievance.

It also gives you the thing you need most in a partner conversation: a claim with dates attached. "Last month felt low" invites reassurance. "The gap has widened from 6% to 19% over four months and here are the figures" invites an explanation.

How to actually run a reconciliation

A repeatable sequence, in the order that eliminates the most false alarms soonest. It takes about twenty minutes the first time and five thereafter.

  1. Wait until the 15th. Do not reconcile a month before payment information is ready. Reconciling an unfinished number generates conclusions you will have to withdraw.
  2. Check the two time zones. Yours and the reporting network's. If they differ, your "month" and theirs are different windows and every subsequent step inherits that error. This is a one-time check that resolves a persistent small gap.
  3. Exclude unfilled impressions before computing anything per-impression. Ad Manager counts what it tried to fill; unfilled inventory earned nothing and belongs in neither the numerator nor the denominator.
  4. Split the revenue by transaction type using the table above, and note which lines are gross. Do not blend them.
  5. Subtract the invalid-traffic deductions shown for the period — and remember more may still arrive up to sixty days after payment, so a closed month is provisional for two more.
  6. Apply currency conversion last, and record the rate and date you used. If you cannot get those from your partner, that is itself a finding.
  7. Compare what remains to the payment. Anything inside roughly 10% is normal measurement variance. Anything beyond it is a question with a specific shape, which is a far better thing to raise than a general sense that the numbers feel low.

Turning the gap into trust

Everything above is knowable. That is the point of the article, and it is what makes the usual industry answer — a shrug and the word "discrepancy" — indefensible.

A publisher is entitled to see, for a given month: what was estimated, what invalid traffic was deducted, what was unfilled, which lines report gross versus net, what currency conversion applied at what rate, what revenue share was taken and on which revenue types, and what remains.

That is not an unreasonable ask. It is a list of things the data already contains.

The problem was never that money went missing. It is that nobody was willing to write down where it went.

The reason most networks do not show it is rarely fraud. It is that assembling it is work, the reporting is scattered across systems that disagree, and "estimated versus actual" ends the conversation more cheaply. But a partner whose entire value proposition is trust cannot keep answering the most basic question with a shrug.

BeeScope on the BeeOS platform Shows gross, fee and net on every row — which is exactly the itemisation this article says a publisher is entitled to see.

Described by what it does, as always here. The numbers in this article belong to Google's own documentation and the IAB, and they are named above.

Why transparency is the actual product

There is a commercial argument buried in all of this that is worth making explicit, because it is the one publishers should be using when they choose a partner.

Every network in this market says roughly the same things: better demand, higher fill, stronger CPMs. None of those claims is checkable by the publisher before signing, and several of them are not checkable afterwards either — because if you cannot decompose your own revenue, you cannot tell whether Network A genuinely pays more than Network B or simply reports more optimistically.

The opacity protects whichever partner is worse. That is not a moral observation, it is a market structure one: when quality is unobservable, buyers cannot pay a premium for it, so nobody invests in it.

A partner who shows you gross, the fee and net on every row has made their margin checkable. That is a harder thing to offer than a good CPM claim, and a more useful one.

Which is why "we are transparent" is worth almost nothing as a sentence and quite a lot as a report you can export. The test is not whether a partner says they are transparent. It is whether, on the 16th of the month, you can produce the seven-step reconciliation above from data they gave you — without asking anyone.

What to ask for, specifically

If you are represented by a network and want to close this gap on your own account, these are the questions that produce answers rather than reassurance:

  1. What time zone is your network configured to, and what is mine?
  2. Which of my revenue lines report gross and which report net?
  3. What was deducted for invalid traffic last month, as a figure?
  4. Which revenue types are inside the revenue-share calculation, and which are excluded?
  5. What exchange rate was applied, and on what date?
  6. Are we on the Reseller model or Regular MCM? (It determines whether "Child revenue share: 0.00" is normal.)

A partner who answers all six without difficulty is a partner worth keeping. One who treats the questions as an accusation has told you something useful too.

One last practical note. Keep the reconciliation sheet even in the months where everything matches — especially those months. A record that only exists for the months you were suspicious proves nothing about the rest, and the whole value of the exercise is being able to say what normal looks like on your own account.

References

  1. Google Ad Manager Help — payments, estimated versus finalised earnings — deduction timing, finalisation, and the transaction/payment calendar (~2nd and ~15th)
  2. Google Ad Manager Help — MCM revenue share and auto-payment — manager auto-payment percentage; Reseller/Platform Partner always 100% with child revenue share shown as 0.00; partner bidding excluded; third-party revenue not auto-paid
  3. Google Ad Manager Help — reporting for Programmatic Direct — gross reporting for Preferred Deals and Programmatic Guaranteed versus net for other transaction types
  4. IAB measurement guidance on discrepancy reconciliation — discrepancies above ~10% warranting reconciliation with the lower measurement controlling; up to ~20% treated as normal for third-party comparisons

Figures above are third-party research, attributed to the organisation that published them. Developing Bee has not measured them and does not present them as its own results.

Share this

WhatsApp LinkedIn X
RD

Developing Bee Research Desk

Ad-ops research, Developing Bee

We read the fraud reports, the policy docs and the takedown filings so publishers do not have to — then write down what actually changes for the person running the ad stack.

Keep reading

Related from the Journal

PUBLISHER ads.txt RESELLER BUYER spoofed inventory
MCM & Compliance

ads.txt, sellers.json & the Art of Faking the Right to Sell

A file at yoursite.com/ads.txt proves who may sell your inventory — and is only as honest as the chain behind it. What the standard does, what it cannot do, and how both get exploited.

RD Developing Bee Research Desk 15 min read

0 Comments

Be the first to comment.

Leave a comment

Comments are read and approved by a person before they appear. Your email is never published.

Awaits moderation

From reading to knowing

Find out what your own traffic is actually doing

Everything above is the industry's data. BeeAudit is how you get your own: a free revenue leak report on your site — what your setup is leaving on the table, where the traffic-quality risk sits, and what to fix in what order. No SSP seats, no account access, no obligation.

What BeeGuard watches for

  • Behavioural mismatch — engagement that does not match the click pattern
  • Traffic-source drift, before it shows up in a policy email
  • Data-centre and known-proxy origin on inventory that should be residential
  • An evidence trail, kept in your account, for when you need to explain yourself