Why You Can't See Profit per Run, Truck or Customer in Your Transport Business

28 October 2026 Aaron Chambers Business Strategy, Systems Integration

If you can't say which runs, trucks, lanes or customers actually make you money, it's usually not because nobody is looking. It's because the revenue for a run sits in your dispatch system, TMS or booking spreadsheet, while the costs of that same run (fuel card transactions, tolls, driver wages, owner-driver payments, repairs and tyres) arrive in different places, weeks apart, and never get matched back to the job. The profit and loss tells you the business made money last month. It can't tell you whether Tuesday's Brisbane–Toowoomba run or your biggest customer did.

Picture an ordinary week. The allocator builds the run sheets on Monday. The drivers do the work, and PODs come back on paper, in a photo or through the driver app. Fuel card statements arrive at month-end, tolls as a lump sum. Payroll runs on timesheets and logbook hours. Owner-driver invoices or RCTIs run on their own cycle. The workshop puts a set of steers and a brake job on prime mover 14 through a supplier account. When the owner asks "are we making money on that customer?", someone exports four reports into a spreadsheet and spends a day guessing.

Signs you have this problem

  • You know revenue per customer to the dollar, but cost per run only as a rough average per kilometre.
  • Fuel card and toll statements are coded to one expense account, not to a truck, run or customer.
  • Owner-driver and subcontract carrier payments can't easily be lined up against what you charged for the same consignments.
  • Rate cards live in a spreadsheet, and nobody is fully sure every customer is on the current version.
  • The fuel levy went up, but some customers are still being charged the old one, and you only find out at review time.
  • Waiting time, tail-lift, pallet exchange and after-hours surcharges get missed because the driver noted them on a con note nobody reads.
  • Invoicing waits for PODs, so last week's revenue isn't in the accounts until well after the costs are.
  • Only one person (often the owner or a long-serving ops manager) really knows which work is worth keeping.

Why it happens

Profit per run needs the revenue and every cost of that run tied to the same job, truck and customer. In most transport businesses those pieces are captured by different people, in different systems, at different times.

Revenue is job-based. Most costs aren't. The TMS or booking spreadsheet knows the consignment, the customer, the pallets or cubic metres, and the agreed rate. A fuel card transaction knows a card number, a site and litres. A toll statement knows a tag and a gantry. Payroll knows hours. None of them carries the run number, so matching them up is manual.

Costs arrive on their own timetable. Fuel and tolls come monthly. Owner-driver payments run weekly or fortnightly. Repairs land whenever the invoice does. Revenue waits on PODs. So any month's figures mix this month's revenue with last month's costs, and the picture for an individual run is never complete at the same time.

Rates are held outside the system. When rate cards and fuel levy formulas sit in a spreadsheet, the TMS only knows whatever someone last typed in. Customers on old rates, levies not passed on and surcharges left off are mistakes that never show up as a cost. They show up as revenue you never charged.

The accounts are set up for tax, not for operations. Xero or MYOB is coded for BAS and the year-end accounts: fuel, tolls, wages, repairs. That's correct for the accountant, but it doesn't say which truck, lane or customer the money belongs to.

This is why buying another app rarely fixes it on its own. A better TMS, fleet maintenance tool or fuel card portal each tidy one part, but the gap sits between them. Unless something ties fuel, tolls, hours and repairs back to the same truck and run, you just have one more system to export from.

What it costs you

Margin you can't see. Some customers and lanes are almost certainly carrying others. For example, if a regular customer's work involves long waits at the dock, backloads you can't fill and tolls you haven't priced in, it can look like steady volume while losing money on every run. Without the numbers, you keep quoting it the same way.

Revenue left on the table. Old rates, missed surcharges and fuel levies that didn't move with diesel are quiet losses. Each is small, but they add up, and nobody finds them because they never appear in the accounts.

Cash arrives late. When invoicing waits on paper PODs and a manual rate check, the cash from a run comes in long after the driver, the fuel and the tolls have been paid. That gap has to be funded from somewhere.

Decisions made blind. Buying another prime mover, dropping a lane or going back to a customer for a rate rise are the biggest decisions in a transport business. Without cost per run they get made on instinct.

Key-person risk. When the only real view of profitability lives in one person's head or one person's spreadsheet, the business is exposed if they're sick, on leave or leave altogether.

What fixing it generally involves

The fix is less about a new product and more about agreeing how a run's revenue and costs should flow, then making the systems carry that through. Start with the simplest step that gives you a useful answer.

  1. Agree what "a run" and "a cost" are. Decide how you'll measure profit: per run, per truck per week, per lane, per customer, or all four. Agree which costs go directly to a run (fuel, tolls, driver wages or owner-driver payment, subcontract carrier cost) and which are spread across the fleet (repairs, tyres, rego, insurance, depot overheads), and how.
  2. Use the same identifiers everywhere. Every truck, trailer, driver, fuel card and toll tag should be recorded against the same fleet number in the TMS, the accounts and the fuel and toll accounts. This is often a settings and data clean-up job, not a software purchase.
  3. Hold rates and levies in one place. Move the rate cards and fuel levy rules out of the spreadsheet and into the system that prices the jobs, so the new levy is applied to every customer from the same date. Our fuel levy and owner-driver rates article goes through how to keep customer levies, subbie rates and RCTIs in step.
  4. Invoice from the POD, not the paper. Capture proof of delivery against the job and let ready jobs flow to invoicing, with surcharges applied from the job record. See proof of delivery to invoice for the step by step.
  5. Bring the costs in automatically. Most fuel card providers and toll accounts can supply transaction files. Matching those to truck and date, and to the run that truck was on, is the core of the job. Driver hours and owner-driver payments can be linked the same way.
  6. Report from one place. Once revenue and costs share the same job, truck and customer, a simple report shows margin per run, per truck and per customer, updated as the data arrives rather than once a quarter.

Check what you already have first. If your TMS already holds rate cards, imports fuel and toll data and reports cost per run, the job may be setting it up properly and training the office to use it. If you run a handful of trucks on one customer, a well-kept spreadsheet may be enough. The connecting work pays off when the work is spread across many customers, lanes, owner-drivers and systems, and the spreadsheet has become the system.

If you'd rather see the problem mapped before deciding anything, our $5,000 Process & Systems Audit documents how jobs, rates and costs move through your business today and where they fall out.

Frequently asked questions

How do I work out cost per run for a truck?

Add the direct costs of that run (fuel, tolls, the driver's wages or the owner-driver's payment, and any subcontract cost) and a fair share of the truck's fixed costs such as repairs, tyres, rego, insurance and finance. The hard part isn't the formula. It's getting fuel, tolls and hours matched to the right truck and run, which is why the data has to share the same fleet number and job reference.

Why doesn't my TMS show profit per customer?

Most TMS products know revenue very well but only see the costs you feed them. If fuel cards, tolls, payroll and repairs are only in your accounts or separate portals, the TMS can't report true margin until those costs are brought in and matched to jobs.

Can Xero or MYOB report profit per truck?

Partly. Tracking categories in Xero, or jobs and categories in MYOB, can tag costs to a truck, but someone still has to code every fuel, toll and repair transaction, and revenue per run usually lives in the TMS. Reporting from both systems together usually gets further.

How do I make sure the fuel levy is passed on to every customer?

Hold each customer's levy rule in one place, update it from one published diesel price, and have the TMS or invoicing system apply it automatically from the effective date. Then run a simple check comparing levy charged with levy due. Spreadsheet rate cards updated by hand are where customers get missed.

See our transport and logistics page, the wider problem of not seeing job profit until it's too late, our Xero and MYOB integration and migration guide, and how we build reporting dashboards that combine operational and accounting data.

If nobody in your business can say which runs, trucks or customers make money, book a free initial chat. We'll talk through where your revenue and costs live and what it would take to see them together.

Related Articles