Most. Help

Tracker ROI vs ROAS: Why the Numbers Never Match

Published Sep 14, 20267 min readIntermediate
Hand-drawn calculator showing 3.2 on one screen and 2.1 on another, an orange coin split into two unequal halves between them, and a magnifying glass over the spend column
What you'll learn
  • Why tracker ROI and Ads Manager ROAS are different formulas, not two measurements of one thing
  • Which side of each number - numerator or denominator - diverges first
  • How hold, clawbacks, and currency convert reported money after the fact
  • A reconciliation procedure that finds real leaks instead of chasing phantom ones
Intermediate

Tracker ROI vs ROAS: Why the Numbers Never Match

The tracker ROI versus ROAS standoff is the weekly ritual of every media buyer: the tracker reports 40 percent ROI on confirmed payouts, Ads Manager reports a 2.4 ROAS on attributed revenue, and someone concludes the tracking is broken. It is not. The two numbers are different formulas over different data - the tracker divides your money by your money, while Ads Manager divides the revenue value you transmitted by the spend it measured - and each one is internally correct. This guide dissects both sides of the division sign, walks every documented reason the results diverge, and ends with a reconciliation procedure that finds real leaks instead of chasing phantom ones.

Conversion-count divergence - leads versus sales, windows, duplicates - is covered separately in the three-systems guide; this page stays on the money.

Two Formulas, Not One Measurement

Write both formulas side by side - with conversion identity tying events to clicks - and the mismatch stops being mysterious:

tracker ROI   = (confirmed payouts - spend) / spend
Ads Manager ROAS = attributed revenue value / attributed spend

Numerators already disagree by construction. The tracker's numerator is the payout the network confirmed - after holds, after rejections, net of clawbacks. Ads Manager's numerator is the sum of value fields inside the events you chose to send - including lead events with no value, including sales the network later rejected, minus everything you never sent. Denominators disagree too: your tracker's spend is what you imported or entered; Ads Manager's spend is what the platform billed, on its own clock and currency.

No tracking setup makes these converge, because they are not two measurements of one quantity. They are two reports answering two different questions: "is my business profitable?" versus "how much revenue does the platform see per its dollar?" The craft is keeping both honest - and knowing which question each number answers.

Where the Numerator Diverges

Every stage of the affiliate chain reshapes the revenue side:

  1. Hold and rejection timing. The tracker's revenue only counts confirmed payouts; the platform's revenue counts events already sent. During the hold window the platform's number leads; after rejections, the tracker's number falls behind reality less - the status-policy trade-off from the hold guide applied to reporting.
  2. Unsent conversions. Events you filtered - trash statuses, junk segments - carry no value to the platform but no money to you either; symmetric. Asymmetric cases hurt: approved sales that were never sent (a delivery gap) inflate platform-blind money that the tracker sees alone.
  3. Duplicates. One sale sent twice (such as a browser-pixel and server-CAPI deduplication failure without a shared event_id) doubles the platform's revenue numerator while the tracker shows one payout - the duplicate-conversions problem in money form.
  4. Value quality. Events with empty value count as conversions without contributing revenue; a flat-event stream makes Ads Manager's ROAS measure counts wearing a money costume.

The payout field feeding your tracker's numerator is documented explicitly: Keitaro's postback payout carries the network's reported money, "positive and negative values are supported" for clawbacks, and currency converts into the tracker's base (Keitaro postback documentation).

Where the Denominator Diverges

Spend splits on three documented seams:

  1. Import timing. Platform spend posts continuously; tracker-side spend exists only if imported - Keitaro's postback contract has a cost parameter "for CPA and RevShare models," but many setups leave spend out of the daily loop entirely and compare against a stale number.
  2. Currency conversion. The platform bills in the account's currency; the network reports payouts in its own; the tracker converts to its base. A tracker ROI computed on converted payouts against unconverted spend - or the reverse - shifts the ratio by the exchange margin.
  3. Costs outside the platform. Tracker ROI can include content, proxies, and staff; Ads Manager ROAS sees only its own spend. Neither is wrong - they are answering for different cost bases.

The rule for reconciliation: fix the currency edge once (usually "tracker base = account currency"), import spend on a schedule, and never mix cost bases inside one ratio.

The Timing Seam: When Each Book Closes

Money crosses the chain with delays, and each book closes on its own schedule. A sale ordered on the last day of the month lands in the platform's report on the day its event was sent, in the network's balance after confirmation, and in the tracker's ROI under whichever period your report cut assigns it to. Attribution windows add a second layer: the platform joins a conversion to the click inside its own documented window, so late conversions can land attributed to nothing - revenue the tracker sees, the platform's ROAS never does, even though the event arrived fine (the attribution-window picture covers the mechanics).

Practically, the discipline is cohort thinking: compare money for cohorts of clicks old enough that hold windows and confirmation lags have finished - the same rule as approve rate math, applied to money instead of counts.

The Reconciliation Procedure

  1. Align the cost basis. Same currency, same period, same spend source on both sides of the comparison.
  2. Align the revenue scope. Decide which events the platform's numerator should contain - sales only, or the lead stream too - and confirm the delivery layer sends exactly that.
  3. Compare on settled cohorts. Pick clicks older than the longest hold window; compute tracker ROI on their confirmed payouts and Ads Manager ROAS on the events they produced.
  4. Classify the residual. Explained by scope (unsent events), by duplicates (identity drift), or by timing (windows) - each has a fix from the linked guides. Unexplained by all three: a real leak, usually in delivery or value passing.
  5. Repeat monthly. A standing reconciliation catches leaks while they are small; the postback troubleshooting checklist covers the plumbing side.

When the residual points at value rather than counts, the payout-as-value guide and its clawback section are the usual fixes.

Tracker ROI vs ROAS: Frequently Asked Questions

Frequently asked questions

Sources

Sources

One truth, both books
  • Audit the events: Pixel Activator fires free valued test events so both books price the same conversion.
  • Value on every cycle: Most keeps payout, currency, and scope consistent between tracker and platforms.
Was this guide helpful?
Author
Most Team
Справочная служба

Официальные руководства и глоссарий для платформы Most и Активатора пикселей.

Topic
Affiliate Conversion Tracking: The Complete Guide
Main article of the topic
Related articles

Related guides

Affiliate Conversion Tracking: The Complete Guide

The entry point to our affiliate tracking cluster: how a conversion that lands on someone else's offer travels through a postback, a tracker, and a Conversions API call, and where each specific failure has its own deep-dive guide.

16 min

Tracker Migration Without Losing Conversions

Changing trackers is easy; changing them mid-flight is not. Every click already sent to the old tracker expects its postback at the old address, and every platform window keeps running. This guide lays out the migration order that loses nothing: parallel running, postback continuity, cutover sequencing, and the checks that close each stage.

7 min

Voluum S2S Tracking: The Postback Contour From Click to Platform

Voluum's S2S contour is one loop: a token rides the click to the offer, and the affiliate network returns it in a postback whose cid parameter carries the value back home. This guide walks the loop - token propagation, the postback URL, platform integrations - and the verification that proves every conversion completes the circuit.

5 min

RedTrack Conversions API: One Conversion, Several Platforms

One click, several ad platforms that deserve to hear about its conversion. RedTrack's CAPI integrations make that a configuration job rather than a coding one: the clickid token matches conversions through S2S postbacks, and each platform integration maps those conversions into its own events. This guide walks the multi-platform setup with the documented fields, matching rules, and dedup pitfalls.

6 min