You're reviewing month-end books. An invoice for ₹100,000 went out on the 15th. But GL posting shows ₹97,000. A ₹3,000 gap. You check the email—it was sent correctly. You check the payment receipt—it's marked paid in full. But the GL split shows less. You ask your accountant. They ask AR. AR asks the invoicing platform. Nobody knows. This isn't rare. It happens to 40% of mid-market teams monthly, and it costs hours of detective work per occurrence. The gap isn't fraud or a system error. It's nine discrete reconciliation breaks—each one legitimate, each one invisible until you know where to look. Once you map them, the ₹3,000 becomes traceable. The audit closes. And you stop losing ₹5K monthly to reconciliation drag. Gap 1: Rounding—invoice rounds, GL truncates You invoice 12 line items at ₹8,333.33 each. Line-item total: ₹100,000. You add 18% GST: ₹18,000. Total due: ₹118,000. But your GL coding splits GST by tax account. Tax account gets ₹17,999.94. Revenue account gets ₹100,000. Difference: ₹0.06 per line. Multiply by 12 lines: ₹0.72 lost to rounding. On a single invoice, that's noise. On 300 invoices monthly, it's ₹216. Invisible. Non-materiality threshold? Auditors wave it through. But if you're reconciling invoice-to-GL every week, that ₹216 becomes a recurring ₹864 monthly reconciliation variance. Recovery: Force your invoicing platform to post the rounding difference to a dedicated rounding variance account instead of silencing it. Then track it explicitly. Total should always be zero month-end. Gap 2: Tax code splits—line-item coding vs account coding Invoice shows one tax code: 18% GST. But when it posts to GL, your system might break it into three accounts: Domestic GST (8% on services) Import GST (10% on goods) Reverse charge (0% on cross-border B2B) Your invoice system doesn't know the difference. It applies 18% across the whole invoice. But GL coding rules (set by your accountant) redistribute it. Result: ₹18,000 GST on the invoice posts as ₹12,200 + ₹4,100 + ₹1,700 across three GL accounts. Invoice total matches GL total, but the line items don't align to any single GL code. Now you're reconciling invoices to GL summary, not line by line. Variance: ₹0. But auditability: near zero. Recovery: Push tax classification down to the invoice line item level. Code each line before invoicing. Then GL posts automatically to the correct split accounts. One invoice, one GL entry, full traceability. Gap 3: Multi-currency exchange rate timing You invoice a Singapore client ₹100,000 SGD on the 14th at ₹62.5 per SGD = ₹6.25L INR. Your invoicing platform records it at that rate on the 14th. GL posts on the 16th (batch posting delay). Rate has shifted to ₹62.3 per SGD. GL posts ₹6.233L INR. Invoice says ₹6.25L. GL says ₹6.233L. Difference: ₹17,000. Real money. And it's a timing gap, not an error. Add a currency revaluation entry on month-end—required under Ind-AS—and the gap becomes ₹25,000 because you're revaluing AR on the 30th at a different rate again. Recovery: Lock invoice exchange rates in your invoicing system. Don't let GL revalue them without a reversing entry back to the invoice. Then explicitly reconcile FX variance as a separate line item in AR aging. Gap 4: Batch posting—invoice date vs GL posting date You generate invoices in your invoicing platform on the 15th. They sit in a batch until the accountant posts them on the 16th at 4 PM. GL date is now the 16th. But some invoices may post on the 17th if the batch was split. You now have invoices dated the 15th but posted to GL on the 16th and 17th. Revenue recognition is split across two periods. A ₹100K invoice from the 15th might be 60% in period 15–16, 40% in period 16–17 if revenue posting got split. Recovery: Enforce a single invoice posting date rule in GL—either auto-post same-day, or delay invoice generation until you're ready to post. Never let invoices sit in limbo waiting for batch. Gap 5: Manual adjustments and unrecorded write-offs Customer disputes ₹5,000 from the invoice. AR agrees and creates a ₹5,000 credit memo in the invoicing system. But your accountant also manually writes off ₹5,000 in GL to keep books clean. Now: Invoice shows ₹100,000 Credit memo shows ₹5,000 AR net: ₹95,000 GL shows ₹90,000 (original ₹100K minus manual write-off ₹5K minus credit memo ₹5K) The ₹90K is correct, but the path to get there is duplicated—it went through both systems. If you're reconciling invoices to GL, you'll double-count the adjustment. Recovery: Create write-offs only in your invoicing platform, never manually in GL. Then post all write-off batches to GL together, end of period. One source of truth. Gap 6: Credit memos applied late Invoice posted on the 15th for ₹100,000. Credit memo issued on the 20th for ₹3,000. But it doesn't post to GL until the 25th because AR batched it separately. Invoice reconciliation on the 23rd will show ₹100K in GL, ₹97K in AR. On the 25th, it matches. But your month-end cutoff on the 24th caught the gap. Credit memo