Every ecommerce finance team has lived this moment: the monthly close is approaching, your payment gateway shows one number, QuickBooks shows another, and the affiliate dashboard appears to be operating in a separate dimension entirely. You reconcile for hours, patch a few obvious entries, and the gap narrows but never fully closes.
That gap isn’t random noise. It’s the predictable result of broken refund logic inside your commission layer. And until you fix the logic, the gap keeps coming back.

When a customer places an order, the commission calculation looks clean: order value × commission rate = payout. Simple. Fast. Done.
Then the return lands.
Most platforms, whether you’re running an in-house sales team, an affiliate program, or a marketplace payout structure will process the refund to the customer correctly. The money goes back. What they frequently fail to do is reverse the commission cleanly, against the right amount, and in the right reporting period. That’s where the cascade of mismatches begins.
There are four distinct failure modes, and most businesses are quietly suffering from at least two of them simultaneously.
Your sales rep or affiliate earns a commission on a $200 order. Gross commission: $14 at 7%. Fine.
Then the customer keeps the item but returns one of two products in the bundle, getting an $80 partial refund. The sale didn’t vanish, it shrank. But your commission system doesn’t know that. It already logged $14 when the order was placed, and unless your platform is specifically configured for partial refund adjustments, that $14 stands unchanged.
This is the gross vs. net problem at the commission level. Your accounting team knows to record gross sales and deduct refunds via a contra-revenue account, a “Sales Returns and Allowances” line that sits just below Gross Sales on the income statement. But your commission engine was never wired to that contra account. It reads from the original order table, not from the net-of-refunds view.
The result: you’re paying commissions on revenue that no longer exists. At scale say, a business doing 3,000 orders a month with a 12% return rate, this bleeds real money every single cycle.
The fix: Commission calculations must reference the settled, post-refund order value, not the original transaction amount. If your platform doesn’t support this natively, you need a post-refund reconciliation step before each commission payout run.
Here is a scenario that plays out constantly in high-volume ecommerce operations.
An order is placed on March 28. The affiliate commission is approved and locked on April 5, after the standard 7-day hold period. The customer files a return on April 10, within your 30-day return window and the refund is processed on April 12.
By this point, the commission has already moved from “pending” to “due” status. In many affiliate platforms, once a commission crosses that threshold, it cannot be automatically reversed. You either pay a commission on a refunded sale, or you manually intervene which requires someone to notice the overlap, match the two events, and issue a manual credit.
The core issue is a calendar mismatch: your commission approval schedule doesn’t align with your return window. The industry standard recommendation is to hold all affiliate commissions in pending status for at least as long as your return policy window. If your store has a 30-day return policy, your commission pending period should be 30 days minimum. A 90-day policy means a 90-day hold. This single alignment eliminates the majority of refund-after-commission payouts.
But most stores never configure this. The default pending period on many affiliate platforms is 30 days, and many merchants keep it there even after extending their return policy to 60 or 90 days, because post-COVID customer expectations shifted. That unclosed gap is quietly leaking commission payouts on returned orders every month.
This one is more insidious because it doesn’t show up as an obvious error, it shows up as a reconciliation gap you can’t trace.
When a refund happens in a different accounting period than the original sale, it creates what finance teams call a phantom adjustment: a financial entry in the current period that relates to a previous period’s order. Your refund processing system posts the commission reversal in April. But the original commission was recognized in March. Without careful period tagging, your March report looks overstated and your April report looks inexplicably light.
This problem is amplified in marketplace environments where platforms group sales, fees, refunds, and adjustments into composite settlement batches. Amazon, Flipkart, Myntra, and Meesho all follow this pattern, a single payout from any of them might bundle a refund from an order placed six weeks ago alongside current-week sales, and the settlement report doesn’t always make that lineage obvious.
The result: your revenue numbers look like a puzzle with missing pieces, your reports don’t match across tools, and month-end becomes a scramble to reverse-engineer which adjustments belong to which period.
The fix: Every commission record needs two timestamps, the sale date and the settlement/reversal date and your reports need to be filterable by both. When a commission reversal hits, it should be tagged back to the originating order’s period for reporting purposes, even if the cash movement happens in the current period.
Even if your commission logic is clean, your reports will still mismatch if your accounting system and your payment processor are telling fundamentally different stories about the same sale.
Here’s why: your sales dashboard shows gross revenue, what the customer paid. Your payment gateway deposits net revenue, what arrived in your bank after platform fees, refund deductions, and processing costs were subtracted. These are two legitimately different numbers, and neither is wrong. But if your commission reports are generated from the gross figure while your P&L is being built from the net deposit, they will never reconcile.
The fee structures vary meaningfully across the major marketplaces, which means the gross-to-net gap is different on every channel. Here’s how the same $100 sale plays out across common platforms:
| Marketplace | Approx. Referral/Commission Fee | Estimated Net Deposit (on ₹/$100 sale) | Source |
|---|---|---|---|
| Amazon India | 8–15% (most categories); up to 45% for some niche categories | ₹85–₹92 | Amazon Seller Central – Fee Schedule |
| Flipkart | 3–22% depending on category (e.g. 3% for mobiles, up to 22% for fashion) | ₹78–₹97 | Flipkart Seller Fee Revision, Nov 2025 – Rekonsile |
| Myntra | 10–25% (marketplace fee, fashion-only platform); total deductions including shipping and GST on fees can reach 25–40% of selling price | ₹60–₹90 | Myntra Seller Pricing Calculator – Global Websters |
If your commission system calculated a 7% payout on $100 (=$7), but your accounting system only sees the net deposit say $80 from Myntra, it looks like you’re paying a much higher effective commission rate than you agreed to. Multiply this across thousands of orders on multiple channels and the distortion in your profitability analysis becomes significant.
The correct approach, per both GAAP and IFRS standards is to record gross sales and list all fees, commissions, and refunds as separate line items. Platform fees are expenses, not revenue reductions. Commissions are expenses, not revenue reductions. Refunds are contra-revenue. Keeping these as distinct entries is the only way to accurately calculate gross margin and diagnose where money is actually going.
It’s tempting to patch these gaps with spreadsheet-based reconciliation. Many finance teams do exactly this, running monthly exports from their platform, affiliate tool, and accounting software, then manually matching rows. Industry research has found that 84% of payment firms still rely on spreadsheets for reconciliation work and 86% report being slowed by poor data visibility as a direct consequence.
Manual matching works until it doesn’t. It works until your order volume crosses a threshold where a human can no longer check every edge case. It works until two systems update their export formats on different schedules. It works until someone forgets to run the export before the commission payout goes out.
The deeper problem is that spreadsheets reconcile symptoms, not causes. You might catch the specific commission overpayment from last month but without fixing the underlying pending period mismatch or the gross/net confusion in your commission engine, the same error regenerates next month.
Fixing this isn’t a one-time reconciliation exercise. It’s a structural change to how your commission logic is wired. Here’s the sequence that works:
1. Audit your pending period against your return window. Pull your affiliate or commission platform settings and compare the commission hold period to your published return policy. If the return window is longer, extend the hold period immediately. This is the single highest-impact change most stores can make.
2. Switch commission bases to net-of-refunds order values. Wherever possible, configure your commission engine to read from fulfilled, non-returned order totals rather than original order amounts. If your platform doesn’t support this natively, build a pre-payout query that cross-references refund records before generating the commission run.
3. Separate gross, fees, and refunds in your chart of accounts. Never record net payouts as revenue. Record gross sales, then list platform fees, commission expenses, and refunds in their own accounts. This is the only structure that lets you accurately calculate channel profitability and spot anomalies.
4. Tag every commission record with both sale date and settlement date. This allows period-accurate reporting even when refunds and reversals arrive late. Your commission expense should be attributable to the period the sale occurred, not the period the reversal was processed.
5. Run reconciliation before payout, not after. The most common mistake is reconciling after commissions are paid. Run your reconciliation matching returns, partial refunds, and chargebacks to pending commission records before every payout cycle. Once a commission is paid, recovering it is operationally expensive and strains affiliate relationships.
It’s easy to look at commission mismatches and conclude that someone made a mistake a rep miscalculated, an affiliate manager missed a reversal, the bookkeeper forgot to update the contra account. But in most cases, the humans are doing their jobs correctly. The systems aren’t designed to talk to each other at the right time, in the right sequence, with the right level of granularity.
Your ecommerce platform, whether Shopify, WooCommerce, or a custom stack processes the refund and notifies the customer. Your payment gateway (Stripe, Razorpay, PayU) processes the reversal and updates the deposit. Your affiliate platform sits on its own schedule, with its own approval logic, with no awareness that the order it’s about to pay out on was returned three days ago. And if you’re also selling on Amazon, Flipkart, or Meesho, each of those marketplaces has its own settlement cadence on top of all of this.
Until those three systems share a common event, a real-time refund webhook, an API-level cancellation signal, or at minimum a pre-payout sync the commission errors will keep compounding. Industry data consistently shows brands losing around 1% of their GMV to underpaid commissions, overcharges, and payment errors combined. Fixing this isn’t a finance housekeeping task. It’s a direct revenue recovery initiative.
The reports will start matching when the logic underneath them is sound. Not before.
Running into commission reconciliation issues in your ecommerce stack? The problems above are solvable but the fix lives in your system configuration and data architecture, not in a monthly spreadsheet audit.
Business Solution
For Indian manufacturing founders and CFOs navigating their next operational upgrade. The Tally vs ERP question for manufacturers is ultimately not about software preference, it is about operational maturity. There is a specific kind of Friday evening that every manufacturing...
Business Solution
Your Heading How we replaced a broken Excel-based commission process with a SQL-powered automation engine — cutting a 24-hour monthly cycle down to 8 hours. Every month, a team of finance specialists sat down with a sprawling Excel workbook. Their...
Business Solution
Every ecommerce finance team has lived this moment: the monthly close is approaching, your payment gateway shows one number, QuickBooks shows another, and the affiliate dashboard appears to be operating in a separate dimension entirely. You reconcile for hours, patch...
Business Solution
You’re running a manufacturing business that’s doing well. Somewhere between ₹20 crore and ₹100 crore in annual revenue. You have a plant, a team, orders coming in, and real customers who depend on you. And yet, every week, something surprises...
Ecommerce
You're selling on Amazon, Flipkart, Meesho — revenue looks healthy. But quietly, 3–5% of your GMV is disappearing into a black hole of fees, return mismatches, and settlement gaps. Here's why it happens, and what modern D2C finance teams are...