Your affiliate payout landed at ₹47,220 last month. Your invoice says ₹48,900. You assume rounding. Three months later, you're ₹1,800 short. By month six, the gap is ₹4,200, and you stop asking why. That's not rounding. That's Stripe's settlement reserve hitting you in currency conversion, hold cycles, and FX volatility—and it compounds monthly because most affiliate ops teams never audit it. Stripe doesn't hide this. It's in the settlement report under "reserve hold," "currency conversion," and "adjustment." But those fields sit in a CSV you never cross-check against what you invoiced. Over six months, I watched one SaaS affiliate program leak ₹35,000—not to fraud, not to a mistake, but to settlement drift that could have been caught in a 90-minute audit and recovered in payouts within 60 days. Here's how to find it, trace it, and fix it. Where the drift actually happens: three layers Stripe settlement doesn't move money the way you invoice it. Three separate pressures create the gap: 1. Currency conversion lag You invoice an affiliate in USD: $600. Stripe converts it to INR at today's rate: ₹50,400. But your payout doesn't land for 2–5 days. In that window, the rupee weakens by 0.8%. Your actual payout is ₹50,000. The ₹400 difference is real, it compounds across twenty affiliates, and Stripe's settlement report calls it "currency conversion variance." 2. Reserve holds and release delays Stripe holds 1–2% of rolling volume for chargeback protection. On a ₹50,000 monthly affiliate payout, that's ₹500–₹1,000 held. The hold releases after 7–30 days, but release timing varies by geography, payment method, and your rolling risk profile. If you invoice on day 1, the hold lands on day 5, and the release lands on day 25, your payout spreadsheet shows the full amount on day 1, but Stripe's settlement shows a net reduction on day 5 and a credit on day 25. That's three separate line items, and most teams never reconcile them as one transaction. 3. Payment method fees and chargebacks Stripe deducts payment method fees (0.5–1.5% for bank transfers, 2–3% for card payouts) directly from settlement. If an affiliate was paid via card last month, and a chargeback hits this month, the fee doesn't reverse automatically—Stripe moves it to a chargeback line item. If you're paying fifty affiliates via mixed methods, your spreadsheet shows different net amounts for the same gross commission, and you can't reconcile without checking the settlement report line by line. A real six-month drift audit: one affiliate's math Let's walk through a single affiliate, "Coastal Marketing," and trace where ₹4,200 went missing. Month Invoiced (INR) Payout Received (INR) Gap (INR) Root Cause Jan ₹48,000 ₹47,520 -₹480 1% FX variance (USD/INR swing) Feb ₹51,000 ₹49,980 -₹1,020 2% FX variance + 0.4% reserve hold (unreleased) Mar ₹49,500 ₹49,005 -₹495 1% FX variance (Feb hold released, included in payout) Apr ₹50,400 ₹49,092 -₹1,308 1.2% FX variance + 1.2% reserve hold (delayed release) May ₹52,000 ₹50,700 -₹1,300 1.5% FX variance + 0.97% Apr hold release timing gap Jun ₹48,900 ₹47,697 -₹1,203 0.8% FX variance + 1.5% May hold release (now included) Total ₹299,800 ₹295,694 -₹4,106 1.37% cumulative drift One affiliate. Six months. ₹4,100 missing. If you have fifty affiliates with similar profiles, that's ₹205,000 in unreconciled drift across your program—sitting in your Stripe account or classified as deferred payouts while your ledger shows it as paid. The 90-minute audit: three steps Step 1: Export your invoiced commissions (30 minutes) Pull every affiliate invoice for the past six months from your invoicing system . Create a clean CSV with these columns: Affiliate Name Invoice Date Gross Commission (INR) Invoice Currency (if mixed) Payment Method (bank transfer, card, etc.) Stripe Payout ID (if available) Sort by affiliate and month. This is your baseline truth—what you promised to pay. Step 2: Export Stripe settlement data (30 minutes) Log into Stripe > Payouts > Download the payout CSV for the same six-month window. You'll get one row per payout with these critical fields: payout_id payout_date amount (the net amount that actually landed) currency status (paid, failed, pending) But the payout CSV doesn't show the reserves, FX adjustments, or fees that reduced the amount. For that, export the Transactions report instead. Go to Stripe > Reporting > Transactions and filter by type = "payout" and "adjustment." Download this as CSV. Now you'll see: Charge ID / Payout ID Type (charge, payout, adjustment, reversal) Amount (can be negative) Fee Net (the amount that actually moved) Description (will say "reserve held," "currency conversion," etc.) This is your full settlement truth—every deduction, hold, and adjustment. Step 3: Reconcile and tag drift (30 minutes) Create a third sheet called "Reconciliation." For each affiliate in month, do this: Match payout_id to invoice date. Line up your invoiced amount with the Stripe payout that landed 2–