Owner-Operator Expenses: AI Sorts Receipts and Fuel Statements

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Owner-Operator Expenses: AI Sorts Receipts and Fuel Statements.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Owner-Operator Expenses: AI Sorts Receipts and Fuel Statements.

An owner-operator can sort receipts and fuel statements into expense categories by photographing every receipt, pasting the fuel card statement into an AI assistant with a fixed category list, and asking for one row per transaction. Then reconcile the totals to the card, and let the accountant decide anything marked uncertain.

The AI does the reading and sorting. It does not decide what is deductible, and it cannot know that the sandwiches on a fuel line were personal. The routine below keeps the judgement with you and your accountant, and uses the AI for the dull 90 per cent that eats a Sunday every month.

Follow me on Instagram@sagnikteaches

Fix the category list before you sort anything

If the categories change every month, so do your comparisons. Agree a list with your accountant once, write it down, and give the AI exactly that list every time. A sensible starting set for a one-truck business:

Connect on LinkedInSagnik Bhattacharya
CategoryWhat goes in itCommon trap
FuelDiesel at the pump or on the cardSnacks and drinks on the same receipt
DEF and fluidsDiesel exhaust fluid, oil, coolantFiled under fuel by default
TollsRoad, bridge, tunnel chargesTransponder top-ups versus actual tolls
Repairs and maintenanceParts, labour, roadside serviceNew equipment that is a purchase, not a repair
TyresNew and retread tyres, tyre repairsMixed with repairs
InsuranceTruck, cargo, liabilityInstalments recorded twice
Truck payment or leaseFinance or lease instalmentsInterest and principal differ for accounting
Parking, scales, lumper feesOvernight parking, weighing, unloading helpCash with no receipt
Permits and licencesRegistration, annual permits, authority feesFees paid by a dispatcher on your behalf
Phone, software, subscriptionsBusiness share onlyPersonal use mixed in
Meals and subsistenceOn-the-road mealsRules vary, so ask the accountant
Ask accountantAnything you are unsure aboutUsed too rarely
Personal, excludeNot a business costLeft inside business categories

The two non-category rows at the end do the most work. "Ask accountant" gives the AI and you a safe place for doubt, instead of forcing a guess. "Personal, exclude" keeps genuinely personal items visible rather than silently deleted, so the totals still reconcile to the card.

Subscribe on YouTube@sagnikteaches

Photograph receipts so a machine can read them

Most failed sorts start with a poor photo. Three habits make the difference:

  • Flat and in full light. Lay the receipt on the dash or a clipboard. Shadows and curls cost digits.
  • One receipt per photo, with the total in frame. A pile photographed together invites missed lines.
  • Name or date at once. If your phone saves photos by date, that is enough. A short voice note on the same day ("repair, brake chamber, rear axle") rescues receipts that fade.

Thermal receipts fade, and a hot cab speeds it up, so a photo on the day is not a nicety. If you have a backlog in a shoebox, do it in one sitting with a table and good light, newest on top.

A prompt for a batch of receipt photos

I am attaching photos of receipts from one month for my one-truck business. For each photo, extract: date, vendor, total paid, a short description, and the category from this fixed list only: Fuel, DEF and fluids, Tolls, Repairs and maintenance, Tyres, Insurance, Truck payment or lease, Parking/scales/lumper, Permits and licences, Phone/software, Meals, Ask accountant, Personal exclude.

Rules:
- If a receipt mixes items (for example fuel plus snacks), split it into two rows with their own amounts.
- If you cannot read the total with confidence, write UNREADABLE in the total column. Do not estimate.
- Do not invent a vendor or a date.
- Show a final row with the sum of totals read.
Return a table.

Typical output (illustrative):

DateVendorDescriptionTotalCategory
03 OctTyre shopSteer tyre repair186.00Tyres
07 OctWeigh stationScale ticket12.50Parking/scales/lumper
11 OctTruck stopOvernight parking25.00Parking/scales/lumper
18 OctParts supplierBrake chamberUNREADABLERepairs and maintenance

The UNREADABLE row is the good news in that output. A model that admits it cannot read a faded total is far safer than one that supplies a plausible number. You then type the figure from the card statement and move on.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

A fuel card statement, sorted line by line

Fuel is the largest line, so it deserves the most care. Fuel card statements usually arrive as a CSV or PDF with a row for each transaction: date, location, product, quantity, price per unit and amount. A statement does not tell you that a line includes a coffee. This illustrative extract is typical:

DateProductQtyUnit priceAmount
02 OctDiesel118.4 gal3.899461.64
09 OctDiesel96.2 gal3.949379.89
09 OctDEF12.0 gal3.49041.88
16 OctDiesel131.0 gal3.879508.15
16 OctStore item114.37
30 OctTransaction fee12.50

Ask the AI for sorting and checking in one pass:

Below is a fuel card statement. For each line, assign one category: Fuel, DEF and fluids, Fees, Personal exclude, Ask accountant.
Then:
1. Check each line: quantity x unit price should equal the amount, within 2 cents. List any line that does not.
2. Give totals per category and a grand total.
3. Give total gallons of diesel and the average price per gallon.
Store items are Personal exclude unless the description says otherwise. Do not change any number I gave you.

[paste the statement]

A correct reply gives Fuel 1,349.68 (345.6 gallons at an average of about 3.905), DEF and fluids 41.88, Fees 2.50, Personal exclude 14.37, and a grand total of 1,408.43, matching the statement. Check that last figure against the statement's own total before you accept anything. Each diesel line should multiply out: 118.4 x 3.899 is 461.64 to the cent, so there is no flag. A line that failed the multiplication would show a mis-keyed quantity, a mid-month price change, or a discount you did not know about.

The average price per gallon is a useful side product. If it creeps up month on month while pump prices fall, your fuelling stops are the problem, and that is a conversation to have with yourself. For a fuller audit, spotting fuel-card misuse in a spreadsheet covers the checks a fleet runs.

The monthly summary the accountant actually wants

Once receipts and statement lines sit in one table, a summary is a pivot or a SUMIFS by category. Ask the AI to produce it, but build the totals with formulas so they reconcile. A month might look like this (illustrative figures, one truck, 9,400 miles):

CategoryAmountPer mile
Fuel5,812.600.618
DEF and fluids168.400.018
Tolls214.750.023
Repairs and maintenance1,042.300.111
Tyres186.000.020
Insurance1,150.000.122
Truck payment or lease1,880.000.200
Parking, scales, lumper97.500.010
Phone and software (business share)118.000.013
Permits and licences85.000.009
Business costs sorted10,754.551.144
Meals (held for accountant)342.10
Personal, excluded61.40
Unsorted, three items57.20
All card and cash spend11,215.25

The reconciliation line matters most: 10,754.55 plus the three held rows (342.10, 61.40 and 57.20) gives 11,215.25, which should match the total of the card statements and cash log for the month. If it does not, something was dropped or counted twice. The cost-per-mile column is a bonus; working out cost per mile from your own statements goes further, including what to compare it with.

Check the AI's work in four short passes

  1. Totals. Does the sum of all rows equal the card statement plus cash spend? Fix this before anything else.
  2. Largest ten. Sort by amount and read the ten biggest rows against their receipts. Large errors hide here.
  3. Ask accountant list. Read it. Anything on it you can answer yourself, such as "it was a work trailer part", gets moved out.
  4. A random five. Pick five small rows and compare category, date and vendor to the photos. If two of the five are wrong, your prompt or category list needs work.

This takes 20 to 30 minutes on a typical month, and it is where the saving over doing everything by hand holds up. The AI has done the typing, not the checking.

Where the same receipt arrives twice

An illustrative month: a $412.30 repair appears once as a photographed receipt and once as a line on the card statement. The AI, given both in the same table, listed both and the summary overstated repairs by $412.30. The month still "reconciled", because the total of the statement lines and the receipt rows had been added together by the tool and the two were never compared against the card.

The fix is a rule about sources. Choose one primary source for each kind of cost: the card statement for anything paid by card, receipts for cash and for detail the statement cannot give. Photos then add description and category to statement rows instead of adding rows. A dedicated column, Matched to, with the statement row number, makes the pairing visible. A prompt for the match step:

Here are two tables: card statement rows and receipt rows. Match each receipt to a card row by date within 2 days and amount within 1 cent. Return matched pairs, receipts with no card row (probably cash), and card rows with no receipt. Do not merge or drop rows.

Card rows with no receipt are your gap list. Fuel on the fuel card can be left alone because the statement is itself an itemised record, but a $300 repair with no invoice is something to chase.

Three trucking situations and how the routine bends

Leased on to a carrier

If deductions come out of a settlement statement, some costs never touch your card at all. They appear on the carrier's statement as lines, so add a source called Settlement and enter each deduction as a row. Checking those lines against your lease is a separate job, covered in checking settlement deductions line by line.

Running under your own authority

You also carry broker invoices, factoring fees and your own insurance. Add categories for Factoring fees and Dispatch fees, and keep invoices on the income side in a separate table, so the expense summary stays clean. A prompt can total the income table independently, to give you income less sorted costs as a rough month's result before the accountant does the proper accounts.

Cash-heavy months

If you pay for lumpers, parking or small repairs in cash, keep a pocket notebook or a voice-note habit. At month end, dictate the list into the chat in one go ("12th October, lumper, 60 dollars, receipt in the cab") and ask for a table. Cash with no receipt is the part to discuss with the accountant, who will tell you what record is acceptable.

Receipts the AI misreads, and how each one shows up

After a few months you learn the failure patterns. Each one has a tell, so you can catch it quickly instead of re-reading everything.

  • Subtotal read as total. A repair invoice shows parts, labour and a grand total in a column. The model grabs the first big number. The tell: the receipt row is lower than the matching card row. The fix is the match step, and a rule in the prompt: "Use the final amount paid, not a subtotal."
  • Date written the other way round. A day-first and month-first confusion turns 04/10 into April. The tell: a row dated months away from the others. Tell the prompt which format your vendors use, or ask for dates written out as "4 Oct".
  • Gallons read as dollars. On a pump receipt the quantity and the amount sit close together. The tell: a diesel price per gallon of 0.38 or 38. The multiplication check from the fuel statement catches it, so run it on receipts too.
  • Two receipts fused into one. Photographed overlapped. The tell: a vendor name that does not match the description. This is why the one-receipt-per-photo habit exists.
  • Handwritten invoices. A small garage's carbon-copy invoice often defeats the reader. Expect UNREADABLE and type the figure yourself from the card statement. Do not accept a guess.

If a scanned PDF of receipts will not read at all, running it through an OCR step first usually helps; making scanned receipts searchable with Acrobat OCR shows how.

One messy week typed into the chat, before and after

Most owner-operators have a few cash items that never get a photo. Dictating them as they happen is quicker than any other method. The raw note, as it might land in the chat on a Sunday evening (illustrative):

mon lumper 60 cash receipt in cab
tue truck stop parking 25 card
wed scale 12.50 cash no receipt
thu coffee and sandwich 11 card
fri brake light bulbs 9.99 parts store
sat new phone charger 18 mine

Asked to sort them into the fixed category list, with no guesses, a good answer produces:

DayItemAmountCategoryEvidence
MonLumper60.00Parking/scales/lumperReceipt in cab
TueParking25.00Parking/scales/lumperCard statement
WedScale12.50Parking/scales/lumperNone, cash
ThuCoffee and sandwich11.00MealsCard statement
FriBrake light bulbs9.99Repairs and maintenanceReceipt needed
SatPhone charger18.00Ask accountantReceipt needed

What you would fix: the charger is flagged for the accountant because it could be a business item or a personal one, and the Evidence column turns the table into a to-do list for the cab. Total for the week is 136.49. The two cash items (the lumper and the scale ticket) have no card record, so the lumper receipt in the cab and a note for the scale are the first things to file, and the parts and charger receipts come next.

Tying expenses to loads and miles

Once expenses are categorised, a second column of information makes them far more useful: which trip or load they belong to. You do not need this for the accounts, but you will want it the first time you ask whether a lane paid. Add two columns to the transaction table, Load ref and Miles, filled in only for rows you can tie to a trip, such as tolls, a lumper fee or the fuel for a particular run.

An illustrative sum: a lane paid $2,150 for 780 loaded miles plus 90 empty. Fuel at 6.4 miles to the gallon is 870 / 6.4 = 135.9 gallons, at 3.90 about $530. Tolls and a lumper fee were $41.25 and $60. Direct costs of $631.25 leave $1,518.75 before the truck payment, insurance and everything else that does not vary by load. Whether that clears your overheads depends on how many such loads a month you run, and that comparison is the point of the exercise. The AI can build the table, but the arithmetic belongs in formulas.

The same load tags help later if you contest a deduction or chase a detention claim, because the cost and the trip are on one line. For that side of the work, see tracking waits and invoicing detention.

Handing over to the accountant

What an accountant values is consistency and a clear audit trail, not clever formatting. Send the same four things every month:

  • the category summary above, with its reconciliation line;
  • the transaction table the summary was built from, one row per item;
  • the Ask accountant list, each row with your own note in one sentence;
  • the receipt photos in a folder named by month, plus the original statements.

Ask the accountant, at the start, which categories they would like and how they want mixed items split. It is often a ten-minute conversation that saves hours. A prompt that drafts your note about a doubtful item keeps the language plain:

Write one sentence for my accountant about this item: [description, amount, date]. Say what it was for, whether it was only business use, and what document I have. Do not argue that it is deductible.

The AI will not argue the case, nor should it. Your accountant knows what is allowable in your situation, and that judgement is the part you are paying for. The same monthly discipline supports whatever accounting software you use later; comparing trucking accounting software shows what the AI features in those tools add.

A first-month plan that fits around driving

  1. Day 1, 20 minutes: agree the category list with your accountant and save it as a note you can paste.
  2. Daily, 1 minute: photograph each receipt at the till. Do not sort anything.
  3. Weekly, 10 minutes: upload the week's photos with the receipt prompt and paste the rows into the sheet.
  4. Month end, 45 minutes: drop in the card statement, run the fuel prompt, match receipts to rows, check the four passes, build the summary.
  5. Month end, 5 minutes: send the pack to the accountant, then store the originals.

Keep the prompts in a note on your phone, or in a saved Project in a chat assistant, so the wording is identical each month. After the first month, write down what took longest. It is usually the unreadable receipts, and the cure is a better photo at the time.

Owner-operator expense questions

Can AI decide what is deductible?

No. It can sort an item into a sensible category, but whether the cost is allowable, and how much of it, depends on your tax rules and your circumstances. Mark anything uncertain as Ask accountant, and let the accountant decide. Meals, phones, home-office costs and mixed personal and business items are the usual questions.

Which receipts should I photograph?

Photograph everything with an amount on it, including small items such as scales, parking and tolls that are easy to forget. Do it at the till, not at the end of the week. A receipt that never became a photo is the one you will not be able to claim or explain later.

How accurate is AI at reading receipt photos?

Good on clear printed receipts, weaker on faded thermal paper, crumpled slips and handwriting. Always compare the total it reads with the amount on your card or bank statement, and treat any receipt where the two disagree as a re-check.

Should I send fuel card statements to the AI?

A fuel card statement is a list of transactions and is the easiest thing to sort. Remove card numbers and driver identifiers before pasting, and use a business plan or switch off training in a consumer account. Keep the original statement as your record; the AI sort is a working copy.

How long should I keep receipts and statements?

That depends on your tax authority and your accountant's advice, so ask them for the exact period and write it on the front of your folder. Keep the original photo and the original statement, not only the AI's summary of them.

Further reads

Sources: OpenAI help centre data-controls article and Claude privacy centre (model-training settings), OpenAI and Claude Projects help articles, checked 5 November 2026; every figure is illustrative and none of it is tax advice.

Want your month-end paperwork down to an hour?

On a 1:1 call we'll look at how receipts and statements reach you now, pick the sorting steps worth automating, and set up a routine you can run alone.

Book a 1:1 call with me