Are there deals I won but forgot to invoice?

You closed the deal. You celebrated. Then what? If you rely on memory or manual handoffs to trigger invoicing, some deals inevitably slip. Here's how to find the ones that did.

7 min read

The short answer

If you have more than 10 deals a month, almost certainly. The gap between “deal closed in CRM” and “invoice sent from accounting” is where revenue disappears. The only way to check is to compare your closed-won deals list against your invoice list, line by line.


The handoff between sales and billing is where deals vanish

Your sales rep closes a $6,500 deal in HubSpot. They move the deal to “Closed Won,” update the notes, and move on to the next prospect. The invoice? That is supposed to be someone else's job. Maybe operations. Maybe the bookkeeper. Maybe the owner.

But nobody got a notification. Or they got one and it got buried under 40 other emails. Or the deal amount in HubSpot was $6,500 but the actual scope changed during negotiation and nobody updated the number. Three weeks later, the client has received the deliverable but no invoice. A month later, nobody remembers.

This is not rare. In businesses that close 15 or more deals per month, it is common for 5-10% of deals to never generate an invoice. On $50,000 in monthly closed revenue, that is $2,500 to $5,000 just gone. Not because the client refused to pay. Because nobody asked.


What a missed invoice looks like across your systems

A missed invoice is a closed-won CRM deal that has no corresponding record in your accounting software. Specifically:

  • Deal in CRM is “Closed Won” with a close date in the period. The sales side considers this done.
  • No invoice in QuickBooks or Xero for that customer and amount. The accounting side has no record of the bill.
  • The deal amount and invoice amount do not match. Sometimes an invoice exists but for a different amount, meaning part of the deal was billed and the rest was forgotten.

How to find uninvoiced deals manually (step by step)

You need exports from two systems and a spreadsheet to match them.

Export closed-won deals from your CRM

  1. 1
    In HubSpot: CRM → Deals → filter and export

    Go to CRM → Deals. Add a filter: “Deal Stage is Closed Won” and “Close Date is in the last 90 days.” Click the “Export” button in the top-right corner and select CSV. The export will include Deal Name, Amount, Close Date, and Associated Company.

  2. 2
    In Salesforce: Reports → create Opportunities report

    Navigate to Reports and create a new Opportunities report. Filter by Stage equals “Closed Won” and Close Date within last 90 days. Click “Export Details” and select CSV format. Ensure the export includes Opportunity Name, Amount, Close Date, and Account Name.

Export invoices from your accounting software

  1. 3
    In QuickBooks Online: Reports → Invoice List

    Go to Reports, search for “Invoice List.” Set the date range to cover the same 90-day window. Click “Export to Excel.” You need customer name, invoice amount, and invoice date.

  2. 4
    In Xero: Business → Invoices → export

    Go to Business → Invoices. Filter by date range. Click “Export” to download a CSV with contact name, total, reference, and date.

Match deals to invoices

  1. 5
    Create a matching spreadsheet

    Put CRM deals in Sheet 1 and invoices in Sheet 2. For each deal, use VLOOKUP or manual search to find an invoice with a matching customer name and similar amount (within 10%).

  2. 6
    Handle name mismatches manually

    “Johnson & Associates” in HubSpot vs “Johnson and Associates LLC” in QuickBooks. VLOOKUP will not catch these. You will need to scan visually or use fuzzy matching formulas.

  3. 7
    List all unmatched deals

    Any closed-won deal with no matching invoice is a potential missed bill. Total the amounts. That is the revenue gap.

Total time: 1 to 2 hours, depending on deal volume and how inconsistent your customer naming is between systems. The name matching alone can take half the time.


Why this check falls apart after the first month

Even if you run this exercise once and catch $10,000 in missed invoices, the problem repeats every month. New deals close. New handoff gaps appear. Unless you have a system that automatically compares CRM deals to invoices on an ongoing basis, the leaks will return.

Most businesses try to solve this with process: “always create an invoice when you close a deal.” But process depends on people, and people forget. Especially when they are busy closing the next deal.


Or let Bottomline match deals to invoices every month

Bottomline connects to your CRM and accounting software and automatically compares closed-won deals against issued invoices. It handles the fuzzy name matching, amount tolerance, and date proximity. When it finds a gap, it shows you exactly which deal was never billed.

Closed deals with no matching invoice
Meridian Group - Brand Strategy
Closed Mar 8
$7,200
Lakewood Dental - SEO Package
Closed Mar 14
$3,800
Prism Architects - Phase 2
Closed Feb 27
$11,500
Total uninvoiced$22,500
From a real Bottomline report. Every closed-won deal is automatically checked against your invoice records.

You do not need to export anything. You do not need to match names in a spreadsheet. Bottomline does the cross-referencing every month and puts the gaps right in front of you. All you have to do is send the invoices.

Get your answer. Every month, automatically.

Connect your accounts in 5 minutes. Your first report arrives within 24 hours.

Works with QuickBooks, Stripe, HubSpot, Google Ads, and more
© 2026 Bottomline