How to track affiliate commissions across multiple programs
Published 21 July 2026
The hard part of tracking commissions across programs isn't logging into fifty partner cabinets — it's that the numbers you pull out don't mean the same thing, and many of them aren't what you'll actually be paid. Collecting them faster fixes neither problem.
Run a real portfolio of casino and sportsbook programs and you've likely tried one of four approaches: copy each cabinet into a spreadsheet by hand, build a smarter template, bolt on link and UTM tracking, or run a purpose-built aggregator. Most of them — and most of the advice online — optimise the same thing: pulling the numbers in faster. That's the wrong target. A "45% RevShare" deal that really nets a fraction of what players deposit doesn't get less misleading because you imported it in seconds.
Tracking that survives scale does three jobs a faster spreadsheet never will: it makes every program's numbers mean the same thing, reconciles what a program reports against what it actually pays, and turns the total into a decision about where to send traffic next. The seven steps below build exactly that — and mark where a tool does the parts you can't do by hand.
How to set up cross-program tracking that survives scale
Work through these in order. The first steps decide whether the numbers are even worth collecting; the later ones decide what you do with them.
Step 1 — Define what you count as commission
Decide what "commission" means before you collect a single number. In iGaming it isn't one figure — it's the end of a pipeline (clicks → registrations → FTDs → deposits → NGR → your cut), and it's worked out differently for every deal you run: CPA, RevShare, Hybrid and Flat all coexist. Two definitions decide whether your totals mean anything:
Your effective rate, not the headline rate. "45% RevShare" applies to net revenue after each program's fees, bonuses and chargebacks — so a "45%" deal often nets nearer 5–6% of what players actually deposited once the formula runs. Track commission ÷ deposits per program, or you're adding up sticker prices nobody pays.
Portfolio yield, not per-program wins. Watch, across all programs at once, how much you earn against total player deposits. A healthy portfolio tends to land around 30% of deposits; a single cabinet can look fine while the wider picture quietly sits at a fraction of that. The number only appears when everything totals in one place.
How AffStata does this: maintaining four payout formulas by hand is where a spreadsheet cracks. AffStata normalises CPA, RevShare, Hybrid and Flat into one comparable figure, so "commission" reads the same across every program.
Step 2 — Capture each program's terms
Record the rules that decide each payout — deal type, NGR formula, negative-carryover rule, minimum-FTD caps, hold and rejection rules, payment threshold. This schema is what everything else hangs off, and most tracking failures trace back to a rule missing here, not a math error later.
Negative carryover is the term most worth getting right: a player's big win can push a RevShare month negative, and where the program carries that forward, the deficit rolls into next month instead of resetting. On bundled multi-brand deals, one losing brand can wipe out profit across the others. Miss the rule and your totals overstate what you'll be paid.
Step 3 — Normalise names and metrics into one dataset
Give every brand one canonical name and every metric one definition before you aggregate, because you can't total figures that aren't the same shape. The same brand shows up as "SpinCity," "SpinCity Canada" and "SpinCity.ca" across three cabinets; FTD and deposit definitions drift the same way. Left un-normalised, none of it reconciles.
How AffStata does this: name normalisation is the step a spreadsheet can't automate. AffStata folds every variant of a brand into one record automatically, so you read a single clean dataset instead of a hundred mismatched exports.
Step 4 — Match the method to your scale and traffic
Choose your tracking method by program count and traffic type, not by feature list:
Under ~20 programs, SEO-primary: a disciplined spreadsheet is fine.
~20–100 programs: the manual grind stops paying for itself; a purpose-built aggregator reclaims the hours.
Paid or PPC traffic: you also need click-level attribution — server-to-server postbacks, click-IDs — so a deposit days after the click still ties to the campaign that paid for it. Most spreadsheets can't.
100+ programs, or building in-house: the question shifts to a read-only feed (API) into your own BI versus building the integrations yourself.
What forces the move is time: in our experience, collecting by hand across 100 programs can run 5–15 hours a cycle before any analysis begins. Past that point, a purpose-built iGaming stats aggregator pays for itself.
Relevant reading: Best stats trackers for iGaming affiliates
Step 5 — Reconcile what's reported against what's paid every cycle
Track two numbers per program — what's reported (the cabinet figure) and what's paid (the financial report) — because the number in your cabinet isn't what lands in your account. The cabinet report is provisional; the financial report comes in lower after chargebacks, payment fees and, on CPA, a manual review that can adjust the figure up or down.
That reported-to-paid gap is usually small — up to around 10% — and it's a different thing from the bigger NGR-to-commission erosion in Step 1, so don't merge them into one scary number. Flag any program where the gap widens or goes unexplained; that's how you catch a shortfall before the invoice. Outright shaving is hard to prove, so the move is to reallocate traffic, not accuse anyone.
How AffStata does this: AffStata pulls each partner's financial report alongside the campaign totals, so the reported-to-paid gap shows in one view instead of being rebuilt by hand.
Step 6 — Turn the total into a traffic decision
A single portfolio total tells you what happened, not what to do next. The decisions that move money are comparative, and a sheet of monthly totals can't make them:
Conversion by geo — which brand turns your Polish traffic into depositors, not just clicks.
Retention by brand — which brands keep the players you send them, and which burn through them.
Commissions by site — which of your own sites actually drives which earnings.
Retention runs deepest, and it's the cut most tools skip. "Did this brand pay well last month" is easy to see; "are the players I sent it six months ago still depositing" is what decides where next month's traffic should go. Split your revenue by the month each player first arrived and the answer often surprises. When we ran that cut on our own numbers, most of the income turned out to be "old money" from years-old cohorts — not the new traffic we were chasing — which changed where we sent traffic next.
How AffStata does this: most aggregators stop at the monthly total. Cohort by brand — whether the players you sent six months ago are still depositing — is the view AffStata is built around.
Step 7 — Monitor between cycles for leaks
Watch all your programs between month-ends, because a leak runs for weeks before a month-end total ever shows it. A mid-tier partner that drops to zero — 100 clicks, no registrations — a broken tracking link, or a program that quietly declines (technical, policy, or bad faith) costs you traffic you never redirect. The monthly snapshot hides every one of them.
How AffStata does this: AffStata refreshes several times a day and lets you pull the data by dashboard, CSV or read-only API, so the current picture is there whenever you look.
Getting that report out on the 3rd instead of the 15th is its own project.
Relevant reading: How to automate affiliate reporting in iGaming
When to stop tracking by hand
Switch to a tool when the hours lost to collection outrun its cost, when mid-month blindness starts costing revenue, or when you need a cross-program view — geo, brand, cohort — a spreadsheet can't build. For most teams that's past a few dozen programs.
That's what AffStata was built for — inside an affiliate agency, for its own operation, before it was ever a product. It auto-collects from ~1,000 partner programs, normalises the naming, refreshes several times a day, reconciles reported against paid, and adds the cohort, geo and brand view that turns tracking into a traffic decision. To see it against your own programs, book a demo.
FAQ
What's the best way to aggregate reporting across multiple affiliate programs? For iGaming, a purpose-built aggregator that connects to each partner cabinet and normalises the data into one dataset. Off-the-shelf "connects 450+ networks" dashboards don't work here, because most casino and sportsbook programs aren't on the mainstream networks those tools integrate with — they run their own cabinets.
How do you track commissions across different deal types like CPA and RevShare? Track the payout metric per program and normalise everything to a common definition first. RevShare additionally needs the effective-NGR formula and any negative-carryover rule captured per program — otherwise your totals overstate what you'll actually be paid, because carryover and fees aren't reflected in the headline figure.
Why doesn't the commission in the cabinet match what I get paid? The cabinet figure is provisional; the financial report applies chargebacks, payment fees and, on CPA, a manual review. That reported-to-paid gap is usually small — up to around 10%. Don't confuse it with the much larger gap between a program's headline RevShare rate and your effective rate on player deposits, which is a separate, bigger erosion. Track both the reported and paid figures, and watch the gap.
What's the costliest mistake when tracking lots of programs? Not watching, across all programs at once, how much you actually earn relative to total player deposits. Individual cabinets can each look healthy while your portfolio-level effective yield sits far below a healthy ~30% of deposits. You only see it when you total everything in one place — which is the whole case for cross-program tracking.
Why is my effective RevShare lower than my headline rate? Because "RevShare %" is applied to net gaming revenue after the program's fees, bonuses and deductions — not to what players deposit. A "45% RevShare" deal can net a small single-digit percentage of actual deposits once the formula runs. Track your effective rate (commission ÷ deposits), not the sticker rate.