Key takeaways
- A daily report should answer one question: did yesterday go as expected, and if not, where?
- Networks and media buyers need different numbers: networks watch revenue, payout and margin; buyers watch spend, profit and ROI.
- Compare yesterday with the 7-day average, not with the day before, so one odd day doesn't send you chasing noise.
- Keep it to one screen. Detail goes in a linked sheet, not in the email.
- Automate it once and it arrives before anyone has opened the tracker.
Most affiliate teams start the day the same way: open the tracker, set the date to yesterday, group by something, and scroll. A good daily report replaces that with a short email that answers one question. Did yesterday go as expected, and if not, where?
This guide covers what to put in it, how to compare days so the numbers mean something, and how to stop building it by hand.
Start with who reads it
The right numbers depend on which side of the deal you're on.
| Reader | Cares most about | Group by |
|---|---|---|
| Affiliate network manager | Revenue, payout, margin, approved vs pending | Affiliate, offer, advertiser |
| Media buyer | Spend, revenue, profit, ROI | Campaign, traffic source |
| Team lead or owner | Totals and the biggest movers | Whatever the team is organized by |
One report for everyone tends to be too long for each of them. Two or three short reports usually work better than one big one.
The core metrics
For a network:
- Clicks and conversions, with conversions split into approved, pending and declined.
- Revenue from advertisers and payout to affiliates.
- Margin: revenue minus payout, as an amount and a percentage.
- CR (conversion rate): conversions divided by clicks.
- EPC (earnings per click): revenue divided by clicks.
For a media buyer:
- Spend, revenue and profit (revenue minus spend).
- ROI: profit divided by spend.
- Conversions and CPA (cost per acquisition): spend divided by conversions.
A buyer's report, at a glance
Those numbers are an example layout, not a benchmark. The point is that four lines tell a buyer where to look first.
Compare against a baseline, not just yesterday
A single day is noisy. Weekends, a delayed postback or one large affiliate can swing the totals. Comparing yesterday with the day before makes every bump look like news.
Better baselines:
- The 7-day average, which smooths out one-off days.
- The same weekday last week, if your traffic has strong weekly patterns.
Show the change as a percentage next to each number, and highlight only changes beyond a threshold you choose, such as 20%. Everything else is background.
Flag what needs action
The most useful line in a daily report is the list of things someone should look at today:
- Offers or campaigns whose margin or ROI dropped below your line.
- Affiliates with a spike in clicks but no conversions.
- Sources with spend and zero conversions.
- Offers close to their cap.
If nothing crosses a threshold, say so in one line. "Nothing unusual yesterday" is a useful report.
Get the timing and timezone right
Send the report early, before the team starts work, and make sure every number uses the same timezone. If your tracker reports in UTC and your advertiser in New York time, totals won't match and someone will lose an hour finding out why. Pick one reporting timezone and use it everywhere.
Remember that yesterday's conversions can still change. Pending conversions get approved or declined later, so treat yesterday's revenue as provisional and the monthly invoice as final.
Keep it to one screen
The email should fit on a phone screen without scrolling far. Put the detail somewhere else:
- A Google Sheet that gets a new row or tab every day.
- A link to the saved report in your tracker.
The email tells you where to look. The sheet is where you dig.
Automating it
Building this by hand adds up: even 20 minutes every working day is about seven hours a month. Automating it is a one-time job:
The daily report as an automation
- 1Pull statsYesterday, by campaign or affiliate
- 2Filter dataDrop rows with no traffic
- 3AI analyzeFlag what crossed your thresholds
- 4Write to SheetsKeep the full table
- 5Send emailThe one-screen summary at 8:00
If you just want yesterday's numbers without building anything, AffZero's built-in Daily Report emails yesterday's stats from each connected tracker at 8:00 in your timezone, and it isn't limited by plan. When you want thresholds, a sheet or a different audience, build your own version; our guide to creating your first automation shows how.
A quick checklist
- One report per audience, each fitting on one screen.
- The core metrics for that audience, nothing more.
- Every number compared with a 7-day average.
- A short list of what crossed a threshold, or "nothing unusual".
- One reporting timezone, used everywhere.
- Detail in a sheet, linked from the email.
- Sent before the team starts, without anyone building it.
If you're weighing whether to automate this or keep doing it in your tracker, the Binom and Affise comparisons put the two side by side.
Frequently asked questions
Should a daily affiliate report use yesterday or today's data?+
Yesterday's. Today is incomplete until midnight in your reporting timezone, and some conversions are still arriving. Use today's numbers for intraday alerts, not for the daily report.
How is EPC calculated?+
EPC (earnings per click) is revenue divided by clicks for the same period. Networks often look at it per offer or per affiliate to compare traffic quality across partners.
Who should get the daily report?+
Whoever acts on it. For a network that's usually affiliate and account managers; for a media buying team, each buyer gets their own campaigns and the team lead gets the summary.