Contractor Expense Tracking That Doesn't Eat Your Evenings
Every contractor I know has the same expense-tracking system: a pile of receipts on the truck seat, a text thread with the bookkeeper, and a guilty stack on the kitchen counter that gets dealt with "Sunday." I ran that system for years. It cost me real money — worst case, $7,500 on one bathroom job that I bid at 30% margin and that came back at 12% because $7,500 of receipts never made it into the job's numbers — and it cost me evenings I should've been off the clock.
The fix isn't discipline. If discipline worked, the pile wouldn't exist. The fix is making the capture so fast that avoiding it takes more effort than doing it. Below is the five-rule system I run now, the expense types that leak out of that system anyway if you're not watching for them, and what the whole thing looks like a month in.
Rule 1: The receipt gets captured where you're standing
Walk out of the supply house, snap the receipt before the truck door closes. That's the whole habit. With AI receipt scanning, the photo is the data entry — store, items, tax, and total pulled automatically. When the receipt names the job or you scan at the jobsite, the app suggests that job; otherwise you pick it. One tap files it. Done at the counter. No shoebox, no Sunday.
Rule 2: If your hands are full, your voice isn't
Half of job-site spending has no receipt at the moment it happens — the sub you paid by Zelle, the dump fee, the guy you sent for ice and screws. Voice capture handles those: say the amount, the job, and what it was, and you check it and tap save. (Voice works in browsers with speech input, like Chrome and Safari, and in the iPhone app on version 1.0.8 or newer.) If it doesn't get captured in the moment, it becomes a memory test at tax time. You will lose that test.
Rule 3: Every expense belongs to a job
An expense list without job assignment tells you that you spent money — congratulations, you already knew. The number that matters is per-job: this bathroom has $11,400 in materials against a $14,000 materials budget. That's tracking job profitability, and it only works if assignment happens at capture, not in a month-end sorting session.
Rule 4: Reimbursables and personal-card spend get flagged at capture
The out-of-pocket Home Depot run on your personal card is the expense most likely to vanish. Flag it the second you log it — reimbursable, client-billable, or company cost — while you still remember which it was. At invoice time, the billable list is already built.
Rule 5: The totals should build themselves
If you've captured at the point of spend and filed to the job with one tap, there is no step five. Your per-job margins are live, your tax-time export is a button, and the QuickBooks handoff to your accountant is a file, not a weekend. That's the entire pitch for doing it this way: the evenings come back.
The expenses that leak out even with a good system
Those five rules cover the expense in front of you. They don't automatically catch the ones that don't look like an expense at the moment they happen. These are the types I've personally lost, and where each one usually gets away.
| Expense type | Where it usually leaks |
|---|---|
| Personal-card supply runs | Paid out of pocket instead of the job account, so it never enters any business record unless you flag it yourself |
| Returns | The original purchase gets logged, but the refund for the extra box of tile never gets subtracted back out |
| Mileage | Nobody logs a drive as an expense in the moment — it only shows up if you fill out a trip form after the fact |
| Sub invoices paid late | The sub finishes the work in week one and bills in week four, after you already thought the job's costs were final |
| Small tool purchases | A $30 blade or a $60 tool feels too small to log, but a dozen of those a month is real money against no job |
| Permit fees | Paid once at the start of the job and then forgotten, since it doesn't recur like materials or labor |
Returns are worth calling out on their own: a return only helps your numbers if the receipt gets captured at all. Snap it like any other receipt — the scan reads a return, refund or credit slip as a return and takes it back out of the job instead of adding to it. What still will not happen by itself is the trip: mileage is a form you type in — job, distance, purpose — not something that tracks itself off your phone in the background.
A 5-minute daily routine
You don't need a system, you need a habit that fits in the truck. This is mine, and it takes about five minutes at the end of a day:
- Empty your pockets and the console. Any paper receipt from the day gets snapped before it can get lost or washed.
- Say the ones with no paper. Cash, Zelle, a sub you paid on the spot — voice-log each one while you still remember the amount and which job it was for.
- Check for a return you made.If you took anything back today, snap that receipt too — it gets read as a return and comes back out of the job's cost.
- Log today's driving if it matters for this job. A trip to a specific supplier or client site, typed into a mileage entry while the odometer number is still fresh in your head.
Five minutes, once a day, and there is no Sunday-night session waiting for you — because there's nothing left to catch up on.
What to do at month end
If the daily routine held, month end isn't a data-entry session — it's a review. Three things worth doing once a month, per active job:
- Scan for anything with no job attached. A stray expense that got logged but never assigned is the fastest thing to lose track of — assign it or flag it as overhead before it sits there unaccounted for.
- Look for sub invoices that haven't shown up yet.If a sub finished work weeks ago and hasn't billed, that's a cost you know is coming — chase it down before it lands as a surprise on a job you thought was closed.
- Pull the QuickBooks export. Everything captured through the month goes out in one file instead of getting retyped by hand into your accounting software.
What "good" looks like after 30 days
Thirty days into running the daily routine, the sign it's working isn't a feeling — it's that month end takes minutes instead of an evening. You can open any active job and see its real spend right now, not a number you have to reconstruct. The personal-card runs, the returns, the late sub invoices — they're logged the week they happened, not discovered three months later when a job's margin doesn't match what you expected. That gap is exactly what turned a 30%-expected bathroom into a 12%-actual one for me — and it's the gap a daily five-minute habit closes.
If you want the fuller system this feeds into — per-job budgets, margins, and what a profitable month actually looks like across every job you're running — see how to track job profitability and what a project cost tracker needs to contain. And if more than one job shares a Home Depot run, read how to split one receipt across multiple jobs so that trip doesn't get dumped on whichever job you thought about first.
Where the paperwork ends up
Two more pieces close the loop once the capturing is done. At tax time, the receipts you logged all year need to be organized in a way your CPA can actually use — see how to organize receipts for taxes and, separately, which contractor expenses are typically deductible. And if the expense side of your business feels disconnected from your books entirely, contractor bookkeeping is the piece that connects the two.
The tool I built for it
The construction expense trackerI use is this system in app form — snap or speak the expense, AI suggests the job when the receipt names it or you scan at the jobsite, and one tap files it, margins update live. Snap a return receipt and it is read as a return, so it comes back out of the job's cost instead of adding to it. Splitting one receipt across jobs is available on the Pro tier and above. Free on the App Store: 3 projects, 50 receipts a month, no credit card. Get it here and retire the shoebox tonight.
Track your next job with Job Cost Pro
Scan receipts, confirm the suggested job, and see your recorded costs against your budget. Start with the free plan in your browser or get the iPhone app.
Free plan available. Some features require a paid plan.
FAQ
How do contractors track expenses?
The reliable way is capturing at the point of spend instead of at end of day: photograph a receipt before leaving the counter, or say the amount out loud when there is no receipt at all — a cash payment, a sub paid by Zelle. Each expense gets filed to the job with one tap, right away, so nothing depends on remembering it later.
What expenses should a contractor track?
Materials, labor, sub invoices, permit fees, and mileage are the obvious ones. The ones contractors miss are personal-card supply runs, returns that never get subtracted back out, small tool purchases under $50, and sub invoices that arrive weeks after the work was done — each one is easy to overlook because it does not look like a job cost in the moment.
What is the best way to track receipts for a construction business?
Photograph each receipt the moment you get it and file it to the specific job — either by hand into a spreadsheet or with a tool where the photo is the data entry. The method matters more than the tool: a receipt logged the same day is reliable, a receipt logged from memory a week later usually is not.
Can I track expenses per job?
Yes, and it is the step that makes expense tracking useful rather than just a spending log. Assigning every expense to a specific job at the time you log it — not in a later sorting session — is what lets you see a job's real cost and margin while it is still running instead of guessing at tax time.
Are contractor expenses tax deductible?
Many ordinary and necessary business expenses — materials, tools, mileage, sub payments — are deductible, but which ones apply and how depends on your specific situation. See tax deductions for construction contractors for the categories to know about, and bring your actual numbers to a CPA, who is the one who can tell you what applies to your business.