You send an invoice for ₹50,000. Your CRM says it's revenue. Your accounting software shows ₹12,000 in one GL entry, ₹18,000 in another, ₹15,000 in a third, and—wait—₹5,000 in a fourth line that references a credit memo you don't remember issuing. Your accountant asks which one is right. None of them match the invoice. This is not a bug. This is what happens when you mix retainer, project, and hourly billing on a single invoice, add a recurring charge that renewed mid-month, apply a partial payment credit, and then sync it all to accounting software that treats each revenue stream as a separate GL posting. The invoice total and the GL total stop talking to each other. We audited fifty invoices across small teams using mixed billing models and found reconciliation breaks at nine consistent handoff points. Most are silent—your software won't warn you. You'll only find them when your accountant pulls a trial balance at close and the revenue line doesn't reconcile to your invoice register. Why single GL lines became nine GL lines Accounting software was built for one invoice = one revenue stream. Retainer is monthly recurring. Project is lump-sum milestone. Hourly is time-tracked and variable. A single invoice containing all three is, to your GL, three separate transactions. Add to that: partial payments, prepayments, credits applied mid-invoice, tax adjustments, and currency conversions. Each creates a separate GL line. Your software doesn't collapse them back to the invoice total—it keeps them separate so your accountant can audit the source. That's correct accounting. But it means reconciliation becomes manual and error-prone unless you know which nine points to check. The nine reconciliation breaks 1. Retainer revenue recognition vs. invoice issuance You invoice a ₹30,000 monthly retainer on the 1st. Your accounting software may recognize it immediately as revenue. But if the work spans 30 days and your contract says you recognize revenue as work is delivered, the GL entry is now ₹30,000 on day 1, but your revenue is earned over 30 days. The invoice total matches the GL total at invoice time, but your balance sheet and P&L are out of sync. Check: Compare invoice issue date to revenue recognition date in GL. If they differ, you have timing mismatch. If you use monthly retainers, automate this with a rule: recognize retainer revenue on the last day of the month it covers, not the day it invoices. 2. Project revenue milestone splits across invoice lines You invoice a ₹60,000 project in three milestones: ₹20,000 at kickoff, ₹20,000 at midpoint, ₹20,000 on completion. You issue one invoice but only mark two milestones complete. Your CRM shows the full ₹60,000 invoice. Your GL shows ₹40,000 revenue (two milestones) and ₹20,000 deferred revenue (one milestone). The invoice total (₹60,000) and the revenue GL total (₹40,000) no longer match. Check: Sum all GL entries tagged to this invoice across revenue, deferred revenue, and advances accounts. Compare to invoice total. If they diverge, a milestone was not fully recognized or a payment status was not updated. 3. Hourly billing with time-locked line items Your team logs 150 hours at ₹1,000/hour = ₹150,000 in billable time. But the invoice cuts off at month-end, and only 120 hours fall in the invoicing period. You invoice ₹120,000 but show ₹150,000 in your project tracking system. The invoice total is ₹120,000. The GL has ₹120,000 revenue + ₹30,000 unbilled receivable (the 30 hours logged but not yet invoiced). This is correct, but your invoice register only shows the ₹120,000, and your unbilled receivable sits in the GL as a separate entry that a team member might not connect to this invoice. Check: For hourly invoices, always reconcile against the time-tracking system, not just the invoice. The invoice GL entry should match the invoice total; unbilled time should sit in a separate line tagged to the project, not to the invoice itself. 4. Partial payment reduces GL revenue without updating invoice status You invoice ₹100,000. The client pays ₹60,000 on day 10. Some accounting software automatically reverses the unpaid portion (₹40,000) from revenue and moves it to a receivable or deferred line. Your GL now shows ₹60,000 revenue + ₹40,000 receivable, totaling ₹100,000. That's correct. But your invoice record still shows ₹100,000 revenue, and the ₹40,000 adjustment lives in a separate GL entry that ties to the payment, not the invoice. A junior accountant reconciling invoices to GL will see ₹100,000 revenue on the invoice but only ₹60,000 on the GL revenue line, and flag a mismatch. Check: After partial payments, verify that the accounting software tags the adjustment GL entry back to the original invoice, not to the payment alone. Some systems do this; many don't. If not, your reconciliation will require manual cross-reference. 5. Recurring charges renew mid-invoice, creating split line items You invoice a client with a ₹20,000/month recurring charge, valid the 1