How to Track Paid and Unpaid Service Calls
Track every service call as paid or unpaid without a heavy system: what to record, how to see what each tech collected, and a 5-minute end-of-day routine.
Every completed service call should end the day with one of two labels: paid or unpaid. When that label is missing, completed work disappears into invoices, texts, card reports, and somebody's memory. A week later, the owner is scrolling through messages trying to figure out who still owes money.
This guide shows how to track paid and unpaid service calls without a heavy system: what to record on every call, why unpaid jobs hide, how to see what your crew collected without calling anyone, and a short daily routine that keeps the unpaid list honest.
Why unpaid service calls hide
Unpaid jobs rarely look dramatic at first. One customer says they will pay tonight. One tech forgets to ask. One invoice goes out after dinner. None of it looks broken until the money does not show up.
They hide because the work and the payment live in different places. The job is marked complete in one app. The payment is in a card app, a Venmo notification, or a check in the truck. The note about who paid is in a text thread. The reminder is in someone's head. The owner is left matching all of it later.
That is the part that wears owners down. Not one missed payment, but the uncertainty about which jobs are actually closed.
What to record on every service call
You do not need a complicated dashboard. You need a few reliable fields tied to every call:
- Customer and service address
- Work completed
- Final amount
- Paid or unpaid status
- Payment method (tap, pay link, ACH, cash, check)
- Who collected it
- Receipt or invoice sent
If those are clear on every call, follow-up gets dramatically easier. For the smallest useful version of this record, see the minimum viable job record for contractors.
The payment record should belong to the job
The cleanest fix is to stop treating payment as a separate report. When the tech collects, the job should show paid. When they do not, the job should stay open. No one should have to update a second system.
That only works if the payment starts from the job. When a tech takes a tap or sends a pay link from the job itself, the status updates on its own and the receipt goes out. When payments are taken in a separate card app, someone has to match them by hand, and that is where tracking breaks. See taking a payment vs closing a job.
Know what your crew collected without calling them
In a lot of trade businesses, the owner finds out what got paid by calling the techs, waiting for deposits, or noticing later when something fell through the cracks. The techs usually did try to collect. The owner just has no clean view of it until after the fact.
With job-linked payments, the owner can answer these questions at any point in the day:
- Which calls were completed today?
- Which were paid on site?
- Which tech collected each payment?
- Which customers still need a reminder?
- Which payments are waiting on a pay link or ACH?
For multi-truck shops, see getting every tech paid before leaving.
Review the exceptions, not every payment
The owner should not need to look at every successful payment. Paid jobs that were collected on the job and tied to it are done. Start with the exceptions:
- Unpaid calls. Who owes, how much, and since when.
- Payments not matched to a job. Anything that came in without a job attached.
- Pay links still open. Sent but not paid yet.
- Split payments. Part cash, part card. See recording cash and card on the same job.
If a customer pays later, update the same service-call record instead of creating a loose transaction. That keeps the work and the money connected.
Common reasons a call ends unpaid, and the fix
- Customer not home. Send a job-linked pay link before leaving, not an invoice that night.
- Customer asked to pay later. Same fix. The link is the next step, and the job stays unpaid until it clears.
- Ticket too big for a card. Offer ACH or financing. See card vs ACH for contractors.
- Scope changed and nobody updated the amount. Charge the new amount against the job on site. See Quick Charge when scope changes.
- Customer declined the repair. The visit fee is still owed. See collecting a diagnostic fee.
- Tech felt awkward asking. Make payment the last step of every job. See collecting without an awkward ask.
Make unpaid work visible the same day
The best time to catch an unpaid job is the day it happens. The tech remembers it. The customer remembers it. A same-day reminder feels like normal follow-up. Waiting until the end of the week turns a simple reminder into detective work, and the customer is less likely to remember the visit fondly.
A five-minute end-of-day routine
- Open the unpaid list for today.
- For each unpaid call, confirm why: customer not home, waiting on ACH, asked to pay later, or tech forgot.
- Send a job-linked pay link to anyone who does not have one yet. See how to send a payment link for a contractor job.
- Match any payment that came in without a job. See reconciling field payments to jobs.
- Note anything the crew should do differently tomorrow.
For a fuller version, see the end-of-day checklist for trade business owners.
Fewer unpaid calls to track in the first place
The easiest unpaid call to track is the one that never became unpaid. Collecting before the truck leaves keeps the list short. Tap to Pay on the tech's phone works on iPhones and NFC-capable Android phones with no card reader, and a pay link covers customers who are not home. See how to get paid on the spot as a contractor.
Spreadsheet or app?
A spreadsheet can hold paid and unpaid status if someone updates it every day. It cannot collect the payment or update itself when a customer pays. If your sheet is always a day behind, see TradePay vs spreadsheets for payment tracking.
Where TradePay fits
TradePay ties payment status directly to jobs. When the tech collects, the job shows paid and the receipt goes out. When they do not, the job stays on the unpaid list. No phone calls, no chasing reports, no end-of-day reconciliation over text. You keep Jobber, Housecall Pro, Joist, or QuickBooks for scheduling and books. See keep your stack and add a collect layer.
The Collect plan is free for up to 2 users. See how it works for HVAC, plumbing, and other trades.
FAQs
What is the simplest way to track unpaid service calls?
Give every completed call an explicit paid or unpaid status, and keep unpaid calls in one follow-up list until they clear.
How do I know which jobs my crew got paid for?
Attach payment status to the job record instead of checking a separate payment report later. When payments start from the job, the status updates on its own.
Why do unpaid jobs get missed?
Usually because job completion and payment collection are tracked in different places.
How often should I review unpaid jobs?
Every day. Same-day follow-up is easier than reconstructing the week later.
Why is matching payments to jobs so hard?
Because invoices, card payments, checks, cash, and field notes all live in different places. A job-linked payment workflow removes most of that matching.
Related guides
Why Full Field Service Software Is Too Much for Getting Paid
Full FSM software can be useful, but many small crews first need a simpler way to turn completed jobs into paid jobs.
Read more →How Do HVAC Contractors Get Paid Faster?
How HVAC contractors get paid faster: collect at service-call closeout with Tap to Pay, send a pay link when no one is home, and see unpaid calls daily.
Read more →Do Electricians Take Credit Cards? Yes, 3 Ways
Yes, electricians can take credit cards on any service call. The 3 ways: Tap to Pay on an iPhone or NFC Android phone, a pay link, or ACH for big jobs.
Read more →How to Get Paid as a Roofer Without Losing Track of Balances
How roofers can track deposits, final balances, and job-linked payments without letting unpaid work get buried.
Read more →Stop chasing. Start collecting.
TradePay helps crews collect payment at job closeout, before the truck leaves the driveway.
Get started free →