Guide · 7 min read
How to Track Affiliate Sales and Commissions
Most disputes between agencies and affiliates aren't about the rate — they're about which leads count. This guide covers what to record per lead, how to reconcile against buyer data, and how to keep commission totals trustworthy as you scale.
Step 1: Decide what you're actually tracking
Before any tooling, pick one definition per affiliate contract: raw leads delivered, leads accepted by the buyer, or leads the buyer paid for. Each implies a different reconciliation cycle and a different cashflow. Mixing definitions across affiliates is fine — mixing them within the same affiliate is where disputes start.
Step 2: Record the minimum viable fields
You don't need a data warehouse to track commissions well. Per lead, capture:
- Lead ID — unique, generated at delivery, never reused.
- Affiliate ID and buyer ID — the two sides of the transaction.
- Timestamp — used for cohorting payouts and resolving timezone disputes.
- Status — accepted, rejected, pending, refunded.
- Price tier — the buyer price and affiliate rate at the moment of delivery, frozen.
Freezing the price tier on the lead row is the single biggest protection against retroactive contract changes breaking historical reports.
Step 3: Reconcile against buyer-confirmed data
Your delivery log isn't the source of truth — the buyer's accepted list is. Every cycle, match your delivered leads against the buyer's confirmation and produce a single exception list: missing IDs, late rejections, duplicates. Anything not on the exception list should not require manual review.
Step 4: Calculate commissions from the reconciled table
Run commissions directly off the reconciled lead table — not from a separate spreadsheet that someone updates by hand. As soon as commissions live in their own file, totals drift, and you spend the next payout cycle hunting the difference.
Step 5: Produce a per-affiliate statement
Every payout cycle, send each affiliate a statement showing leads, deductions, and balance owed. The statement is your audit trail — if you can regenerate it deterministically from the lead table, your tracking is in good shape.
Common mistakes to avoid
- Tracking in the affiliate's tool. They'll trust your numbers more if both sides reconcile against your independent log.
- Editing historical rows. Append a correction row instead — your past statements should always regenerate.
- One spreadsheet per affiliate. The moment commission terms change you'll have N migrations to do.
How Affilibooks handles tracking
Affilibooks stores every lead with its frozen buyer price and affiliate rate, reconciles against buyer-confirmed data, and regenerates per-affiliate statements on demand. If a number changes, you can see exactly which lead and which rule produced the difference.