Your invoicing software says the total is ₹50,000. Your CRM deal shows ₹49,750. Your accounting GL is posting ₹50,125. No one is lying. Your data just broke in seven different places on its way through three systems. Most teams discover this at month-end close, when reconciliation crawls to a halt and someone spends six hours tracing line items across three spreadsheets. The problem is structural: CRM systems forecast deals with round numbers and optional discounts. Invoicing tools calculate tax, handle line-item precision, and sometimes round differently. And accounting software posts what it receives, often reformatting dates, currencies, and account assignments along the way. We tested this with thirty invoices across a typical SMB stack—Pipedrive or HubSpot for CRM, FreshBooks or Wave for invoicing, and QuickBooks or Xero for GL. Every single one diverged somewhere. Here are the seven breaks, how to find them, and a reconciliation audit you can run before next month-end. Break 1: Currency rounding in cross-rate conversions You sell in SGD. Your invoicing tool defaults to USD for API logging. Your GL converts both back to INR for reporting. Each conversion rounds independently. Example: A ₹50,000 invoice converts to SGD 810.81 (at 61.62 rate). Your invoicing tool rounds to 810. On conversion back, that's ₹49,980. Your CRM still shows ₹50,000. Difference: ₹20. Multiply this across fifty invoices and you're down ₹1,000+ with no obvious culprit. Where it breaks: Between CRM and invoicing tool; again between invoicing and GL if multi-currency syncs are enabled Detection: Pull your ten largest invoices. Calculate the original currency total, convert to each downstream currency at the rate your software used, and convert back. If the final amount doesn't match the GL posting, rounding is eating the delta. Fix: Lock rounding rules before sync. Many platforms let you specify "round half up" vs "round half down"—enforce one rule across all three systems. Alternatively, sync the original currency and let the GL do all conversions at once, not piecemeal. Break 2: Tax-rate mismatches on discounted line items You apply a 15% project discount in your CRM deal. Your invoicing tool calculates tax on the discounted amount. But your GL account is coded for a different tax treatment—maybe it still expects the pre-discount rate because the tax rule is set at the product level, not the transaction level. Example: Original line is ₹10,000. You discount to ₹8,500. Your invoicing tool applies 9% GST to ₹8,500 = ₹765 tax, ₹9,265 total. But your GL's tax rule for that product line defaults to 9% on ₹10,000 = ₹900 tax. The invoice is recorded at ₹9,265 but the GL expects ₹9,900. Difference: ₹635. Where it breaks: Between CRM (discount applied) and invoicing tool (tax calculated); again if the GL's tax code doesn't match the invoicing tool's calculation order Detection: Pull a discounted invoice. Manually calculate tax on the pre-discount amount, then on the post-discount amount. Check which one your GL is using. If they don't match your invoicing tool's total, tax order is the culprit. Fix: Enforce a rule: discounts always apply after tax is calculated, or always before—and make sure all three systems know the same rule. If your invoicing tool and GL disagree, the tool is usually right (it's closer to the customer); adjust your GL mapping. Break 3: Line-item discount application and sync lag A discount is applied in your CRM (as a percentage or fixed amount). The invoicing tool doesn't receive it until the next sync—which might be hourly, or might be manual. If your invoice is created before that sync, the discount is missing from the invoice total, but the CRM deal forecast includes it. Example: CRM shows a ₹50,000 deal with ₹5,000 discount applied = ₹45,000 forecast. You generate an invoice before the next hourly sync. The invoice posts at ₹50,000. By the time the discount syncs, the invoice is already in your GL. Reconciliation now has an orphaned ₹5,000. Where it breaks: Between CRM and invoicing tool, especially if sync is asynchronous or batched Detection: For one week, log the timestamp of every discount applied in your CRM and every invoice generated in your invoicing tool. Flag any invoice generated within 2 hours of a discount application on the same deal. Compare invoice total to deal forecast. Fix: If your invoicing tool syncs from your CRM, use automation rules to delay invoice generation until 15 minutes after a deal is updated. Alternatively, manually apply the discount in the invoicing tool at invoice time, rather than relying on sync. Or move to a unified platform where CRM and invoicing share the same database—no sync lag. Break 4: GL account code assignment drift Your invoicing tool assigns GL codes based on a product mapping table. Your CRM has a different mapping. Or the GL code changed last week, but the invoicing tool is still using the old one because the mapping sync failed silently. Example: Service produ