You run a ₹35K monthly affiliate program. Ten partners drive solid traffic. Your invoices match your bank statements. Everything looks balanced. But when you trace a single partner's clicks from their landing page through to their payout, the math breaks in three places. By the time you've chased the trail through your CRM, into your invoice system, and out the other side to your processor, you've lost sight of 12% of the commissions that should have been paid. Across your whole program, that's ₹4,200 to ₹8,400 monthly—pure leakage, no audit trail, no way to spot it until a partner complains. The problem isn't fraud. It's synchronisation failure. Affiliate payout tracking isn't one system; it's nine distinct handoff points, each with its own data format, timing window, and failure mode. A tracking pixel fires but your CRM misattributes the click. A commission gets calculated correctly but codes to the wrong GL line. A payout is marked sent in your system but lands late in the partner's bank account. Each break is tiny. Together, they're silent revenue loss. Here's how to map it, audit it, and plug the leaks. The nine sync points: Where the money disappears Start by drawing your payout journey as a sequence, not a loop. Each step moves data between systems. Each transition is a place where records diverge. Tracking pixel fires → partner attribution logged. Your tracking script fires when a visitor lands from the affiliate link. That event must reach your backend with the partner ID intact, the timestamp precise, and no dropped packets. Partner attribution → contact created in CRM. Your pixel data lands in a data warehouse or event log. That needs to become a contact in your CRM with a campaign source field, a partner tag, and a clean match against your existing contact records (so duplicate contacts don't eat commissions). Contact → deal attributed correctly. When that contact converts, the deal must inherit the partner attribution from the contact record. If your deal creation flow doesn't pull the source field, or if a contact is reassigned, the attribution orphans. Deal → commission calculated and logged. Once a deal closes, your commission logic fires: percentage, amount, tier, bonus, clawback for refunds—all of it has to land in a single source-of-truth record (usually a line item in an invoice or a commission ledger). Commission log → invoice line items. The commission record must become an invoice line: partner name, commission amount, date range, any deductions. If your invoice system doesn't pull live from the commission log, or if invoices are generated weekly while commissions are logged daily, timing mismatches will create duplicates or gaps. Invoice → GL coding. That invoice line must code to the right general ledger account. If commissions code to COGS instead of a dedicated affiliate expense line, your finance team can't trend the spend. If they code to a suspense account by default, reconciliation becomes impossible. GL posting → bank payment file prepared. The GL entries have to feed into a payment run: partner name, bank details (IFSC, account number), amount. If payment data comes from a different system than GL (e.g., a spreadsheet instead of your accounting platform), the amounts won't reconcile. Payment file → processor settlement. Your payment processor (Stripe, Razorpay, 2Checkout) receives the file, batches it, and schedules it for settlement. Settlement timing varies: Stripe is D+2, Razorpay instant, 2Checkout variable by geography. If your payout calendar assumes one timing and the processor uses another, partners see delays and you lose trust. Settlement → reconciliation against commission log. The processor sends back a settlement report with timestamps, amounts, and statuses (pending, settled, failed, reversed). That report must match your commission log row-by-row, by date and amount. If the reconciliation happens monthly instead of daily, failed or reversed payouts sit unnoticed for weeks. Where audits fail: Three common blind spots Most affiliate programs audit three things: total payouts against invoice totals, invoices against GL entries, GL against bank statements. That catches big mistakes. It misses small, systematic ones. Blind spot one: duplicate contacts and lost attribution. Two partners refer the same contact. The contact is created the first time, updated the second time. When they convert, the deal pulls the source from the contact's most recent update—the second partner gets the commission. The first partner's traffic is lost. This is especially common in B2B affiliate programs where multiple partners might legitimately touch the same buyer. Your audit spreadsheet shows both commissions were paid (it was), but it doesn't show which partner actually earned it. Blind spot two: timing mismatches in invoice batching. Commissions are logged continuously. Invoices are generated on the 25th of each month. If a deal closes on the 26th, the commission might not appear on