How Loupe works

How it works

Six steps from a spreadsheet you already have to money you can bank.

Data, detect, prove, fix, recover. Each step below shows the thing itself rather than a picture of it — the files, the mapping, the detectors, the arithmetic, the draft, and the figure that comes back.

  1. Upload

    There is nothing to connect.

    You export CSV or Excel from the tools you already run and upload the files. No login to your CRM, no key to your accounting system, no background job reaching into anything — and nothing pointing the other way, because Loupe can only read what you hand it.

    Your exports

    • leads.csvwho asked
    • calls.csvwho rang
    • quotes.csvwhat you priced
    • jobs.csvwhat you did
    • invoices.csvwhat you billed

    Accepted: .csv and .xlsx. The file itself is never kept — only the fields you map, and its name.

  2. Map

    You confirm what each column means.

    Every vendor names its columns differently, so Loupe proposes a mapping from the header names it recognises and shows you a preview before anything is stored. A header it is not sure about is left for you rather than guessed at — and only the fields you map are written. Every other column in the spreadsheet is dropped at the door.

    Column mapping · example

    Example column mapping: your header and the Loupe field it becomes
    Your headerLoupe field
    Job TotalJob value matched
    Date CreatedCreated matched
    Proposal SentSent matched
    Due DateYou place this one needs you

    A due date is not an issue date, so the matcher refuses to bind it and asks instead. Guessing is fine; guessing silently is not.

  3. Detect

    Five detectors, all arithmetic.

    Each one reads your normalised records and returns a finding or nothing at all. There is no model anywhere in this step: run it twice on the same rows and you get the same answer, which is the only reason the next step is possible. A detector that cannot support a claim on your data makes none — the response-time detector, for one, goes quiet when either bucket is too thin to compare or the export carries dates without times.

    Detectors that run

    • Leads wait too long for a first callbackslow_lead_response@1.0.0
    • Quotes are going stale without a decisionaging_quotes@1.0.0
    • Work you have done and not been paid foruncollected_invoices@1.0.0
    • Past customers have gone quiet and nobody followed updormant_customers@1.0.0
    • AI-booked jobs collect less cash than jobs your team booksai_booked_job_audit@1.0.0

    Each formula carries its own version, so a figure can always be read back against the arithmetic that produced it.

  4. Prove

    The figure opens into its own arithmetic.

    Every finding names each variable that produced it with its own value, prints the expression they were plugged into, and carries the ids of the exact records it was built from — so the dollar amount is never something you have to take on trust. Disagree with a number and you can say which one.

    Leads waiting too long for follow-up

    The arithmetic behind the example figure, one rung at a time
    RungAppliedRunning
    Slow leads per month7070
    Booking-rate gap× 28%19.3
    Average completed-job value× $1,517$29,306
    Completion rate× 78%$23,000

    Followed by the 204 records it was computed from, each one yours.

    Example · demo records · your figures come from your own exports

  5. Fix

    A draft you send. Never one we send.

    Each leak comes with the message or the process change that closes it, written as a template with the details left in brackets for you to fill. Loupe never contacts your customers and never sends anything on your behalf — it goes out from your inbox, in your words, or it does not go out.

    Draft · email

    SubjectFollowing up on your enquiry

    Hi [first name],
    
    Thanks for reaching out to [your company] — sorry we didn't connect sooner. I'd still love to help with [what they asked about].
    
    Do you have 10 minutes today or tomorrow for a quick call? Reply here or grab a time: [booking link].
    
    [your name]

    Bracketed fields are yours to fill. Nothing is sent from here.

  6. Measure

    Next month's export answers the question.

    Competitors stop at booked. The same arithmetic runs again on the records you send the following month, against starting numbers agreed in writing on day one — so the figure moves with what your records now say, and the two runs sit side by side rather than one being a projection.

    Recovered, measured

    Monthly, at month ten
    +$18,400/mo
    Cumulative, ten months
    $64,200

    Collected, not booked. A month where nothing was recovered says so.

    Example · demo records · your figures come from your own exports

What to bring

Five exports. That’s everything we ask of you.

  • CRM / pipeline

    Required
    Housecall ProJobberServiceTitanHubSpotSalesforcePipedrive

    The enquiries that waited longer than you would have liked, and the proposals that never got their second call.

  • Accounting

    Required
    QuickBooksXeroFreshBooksSage

    The one almost nobody else asks for. It is what lets us follow a job past booked all the way to the money landing — and name the invoices that never quite got there.

  • Ad platforms

    Not yet
    Google AdsMetaLinkedIn

    What your spend actually brought back in work, rather than what it bought in clicks. Not accepted yet — the importer takes leads, calls, quotes, jobs and invoices.

  • Call log

    Accepted, not read
    CallRailTwilio

    Accepted and stored, and no detector reads it yet — the one that will is the missed-call check, still to be built. Upload it now and it is there when that lands.

  • Payment status

    Included

    Work you have delivered and not been paid for — read from the collected-date column in the accounting export above. There is no separate payments upload.

Loupe reads files you can already export today — no installation, no integration to approve, nothing plugged into your systems. The first two are the floor. Each one after widens what the report can prove.

  • Housecall Pro
  • Jobber
  • ServiceTitan
  • HubSpot
  • Salesforce
  • Pipedrive
  • QuickBooks
  • Xero
  • FreshBooks
  • Sage
  • Google Ads
  • Meta
  • LinkedIn
  • CallRail
  • Twilio

Not integrations — you export a CSV and upload it, and that is the only path your records take in. Nothing connects to these tools, and nothing syncs on a schedule. Anything that exports a file works, even if its logo is not here.

The difference

Everyone else watches one slice.

Call trackerswatch your phones
Attribution toolswatch your ads
Dashboardswatch your CRM
What a CRM can seeWhat Loupe reads
JobLeadQuotedBookedInvoicedCollected
Q-8841Lead: yesQuoted: yesBooked: yesInvoiced: yesCollected: yes
Q-8842Lead: yesQuoted: yesBooked: yes—Invoiced: no—Collected: no
Q-8843Lead: yesQuoted: yesBooked: yesInvoiced: yesCollected: yes
Q-8844Lead: yesQuoted: yesBooked: yesInvoiced: yes—Collected: no

Their trail ends at booked. Whether the job was invoiced, and whether the invoice was ever paid, is in the accounting export — which is why Loupe reads that too.

Every one of them stops at your CRM, so the last thing they can see is a job getting booked.Loupe reads the accounting export too, follows that job to the invoice, and ranks what never turned into money — in dollars, with the arithmetic beside each figure, and the same detectors run again on next month's export so the number moves on evidence. One clear view, the receipts behind every figure, and a named analyst on the done-for-you plans.

“You’ll always know who’s looking at your numbers. I review every dashboard personally — and we walk through it together, every month.”
Karan Patel · Founder, and your analyst on the diagnostic and the recovery partnership

See what you’re
quietly losing.

Both free. The check takes about 30 seconds and asks for nothing; the workspace runs the same detectors on one export of your own. Or start a conversation →

We'll email you when we can take on your audit — no waitlist games.