Cost per Mile for Trucking: Work It Out From Your Own Statements

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Cost per Mile for Trucking: Work It Out From Your Own Statements.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Cost per Mile for Trucking: Work It Out From Your Own Statements.

Your true cost per mile is every cost of running the truck for a month, fixed and variable, divided by the miles you drove. Divide by loaded miles too, because that figure is the minimum rate you can accept. In the one-truck example below, that is $1.79 a mile overall and $2.10 a loaded mile; fuel alone is $0.55.

The inputs sit in statements you already receive: the fuel card, the insurance schedule, the truck loan or lease, driver pay and the repair invoices. Below is a method that turns them into one spreadsheet, a worked example with every sum shown, and a way to use AI to read the statements, with checks that stop it slipping a wrong number in.

Follow me on Instagram@sagnikteaches

Fixed costs, variable costs and the one line people forget

Fixed costs arrive whether the wheels turn or not. Variable costs rise with each mile. Splitting them is the whole trick, because it tells you what a short month does to your figure, and what a load really costs you at the margin.

Connect on LinkedInSagnik Bhattacharya
CostTypeStatement to use
Truck payment or leaseFixedFinance statement
Trailer payment or leaseFixedFinance statement
Insurance (cargo, liability, physical damage)FixedPolicy schedule; annual bills divided by 12
Permits, registration, licencesFixedRenewal invoices; divide by 12
Tracking device and softwareFixedSubscription invoices
Parking and yardFixedRent invoice
Accountant and adminFixedInvoices
Driver pay, salaried or owner's drawFixedPayroll export or your own drawings
FuelVariableFuel card statement
Tyres, repairs, servicingVariableWorkshop invoices; cost per mile over a year
Tolls, scales, lumper feesVariableToll account statement and receipts
Load-board or broker feesVariableSubscription or per-load invoices

The line people forget is their own pay. An owner who drives and takes whatever is left has a cost per mile that looks fine and a bank account that does not. Put in a fair monthly figure, the amount you would pay someone else to drive the same hours. If your driver is paid per mile, treat pay as variable and enter it in the second half of the table instead.

Subscribe on YouTube@sagnikteaches

The main example: one truck, one month, every sum

Take an illustrative one-truck carrier, the owner driving. All figures are invented for the example. In the month: 9,600 total miles, of which 8,160 were loaded and 1,440 empty on the way to the next pickup, so 85% loaded.

Fixed costs for the month.

  • Truck payment: $1,850
  • Trailer lease: $420
  • Insurance: $1,420 (an annual premium turned into a monthly figure)
  • Permits and registration, divided by 12: $210
  • Tracking device: $35
  • Yard parking: $150
  • Accountant and software: $120
  • Owner's pay: $5,500

Fixed total: $9,705.

Variable costs for the month. Fuel: 9,600 miles at 7 miles to the gallon is 1,371 gallons; at $3.85 a gallon that is $5,280. Tyres and repairs at $0.17 a mile, from last year's invoices: $1,632. Tolls: $380. Load-board subscription: $169. Variable total: $7,461.

Totals. $9,705 + $7,461 = $17,166. Per total mile: $17,166 ÷ 9,600 = $1.79. Per loaded mile: $17,166 ÷ 8,160 = $2.10. Of the $1.79, fixed costs are $1.01 and variable $0.78.

If the carrier's average rate is $2.35 per loaded mile, monthly revenue is 8,160 × $2.35 = $19,176 and what remains after every cost, owner's pay included, is $2,010. If the average falls to $2.05, the truck loses money on every month's miles, even though the fuel bill is paid and the driver draws a wage.

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

Why loaded miles are the figure to quote against

Customers pay for loaded miles. The 1,440 empty ones are your cost, and they land on the loaded figure. That is why $2.10 is the real minimum rate here, not $1.79, and why a lane that returns empty needs a higher rate than one that picks up a return load.

A short test on a single load makes this concrete. A load pays $1,150 for 480 loaded miles, with 120 empty miles back. That is 600 miles at the variable cost of $0.78 (about $466). The load also takes two working days of the truck. Fixed costs of $9,705 over 26 working days are $373 a day, so two days is about $747. Total: $466 + $747 = $1,213 against $1,150 of revenue. The load loses roughly $63 even though the rate looks like $2.40 per loaded mile. Seeing that before you accept is why the exercise exists.

The sensitivity every small carrier should see

Fixed costs do not shrink when miles fall, so cost per mile climbs in a slow month. Here is the same truck at three levels of activity, with variable cost held at $0.777 a mile and fixed costs steady at $9,705.

Miles in the monthFixed per mileVariable per mileTotal costCost per mile
7,800$1.24$0.78$15,767$2.02
9,600$1.01$0.78$17,166$1.79
11,400$0.85$0.78$18,565$1.63

A 19% fall in miles pushes the cost per mile up by 13%. A month with a week of waiting for a repair is not a sign that your rates were wrong; it is the cost of idle time landing on fewer miles. Keep a note beside each month saying what stopped you, so a bad month can be read properly.

Building the spreadsheet

Make one sheet per month, or one row per month on a summary. The columns and formulas below are enough.

  1. Total miles and loaded miles from the logbook or tracking export. Use the odometer, not the planner.
  2. Fixed costs, a short list with one amount each, and a total.
  3. Variable costs, a short list with one amount each, and a total.
  4. Cost per total mile: =(Fixed+Variable)/TotalMiles
  5. Cost per loaded mile: =(Fixed+Variable)/LoadedMiles
  6. Break-even rate with margin: =CostPerLoadedMile*(1+TargetMargin), with a margin such as 8% in its own labelled cell.

Keep a "reserve per mile" line for tyres and big repairs. A truck that needs $12,000 of work every 70,000 miles has a reserve of $0.17 a mile whether or not this month's bills include it, and a month with no repair bill is not a month with no wear. If you would like help writing formulas, the guide to ChatGPT with Excel shows how to ask for one and test it.

Getting the numbers out of statements with AI

This is the tedious step, and an assistant can speed it up if you check its work. Redact account and card numbers and any driver personal details first. Then give it a few pages at a time.

Below is one month of fuel card transactions (date, merchant, item, gallons, amount).
Task: total the amount for diesel only, total the gallons, calculate average price per gallon, and list any row that is not diesel with its amount.
Also flag any two rows with the same date, merchant and amount.
Show your working. At the end, give the grand total of ALL rows so I can check it against my statement.

An illustrative reply: diesel $5,280.00 across 1,371 gallons, an average of $3.85 a gallon; non-diesel rows listed at $99.60 (a windscreen additive and a meal), which belong under repairs and the owner's own costs, not fuel; grand total $5,379.60; one possible duplicate pair on the 14th. What you check: does the grand total equal the statement total? Is the duplicate real, or two separate fills? If the totals differ by even a dollar, the tool dropped or changed a row. Re-run with smaller batches or fix the row by hand.

The same approach works for the insurance schedule: ask for each premium, its period and the monthly equivalent, and keep the dates so you can see when renewals fall. For bigger exports, a spreadsheet's own tools are safer than pasting hundreds of rows; the tutorial on cleaning messy data covers that.

A second example: a three-truck carrier with a paid driver

A small carrier with three trucks and two hired drivers (the owner drives the third truck) shows how the method scales. Hired drivers are paid per loaded mile, so their pay is variable: $0.58 a mile. That moves $0.58 from the fixed to the variable side for two trucks, and the owner's pay stays fixed.

Suppose across the fleet for a month the owner finds fixed costs of $24,300 (three trucks, trailers, insurance, yard, office, owner's pay), variable costs of $0.78 a mile for fuel, repairs, tolls and fees, driver pay on the two hired trucks, and 27,900 total miles split 9,300 per truck. Then variable costs: fuel and the rest $0.78 × 27,900 = $21,762; hired driver pay $0.58 × 18,600 = $10,788. Total: $24,300 + $21,762 + $10,788 = $56,850, or $2.04 a mile. Per truck, though, the numbers differ: the owner-driven truck carries no hired driver pay, so it runs at a lower variable cost but takes the owner's pay as a fixed cost. A per-truck sheet shows which truck pays for itself, and which one drags the average down.

The useful move here is a column for each truck. If truck 2 consistently runs 20% fewer loaded miles than truck 1, the dispatcher needs to see why, and the lane analysis in margin by lane from a spreadsheet is the next step.

Reading an insurance schedule into a monthly figure

Insurance is the statement most carriers read worst, because it arrives as a long schedule with several premiums on different dates. Ask an assistant to turn it into a table, then check each row against the document yourself.

Below is the schedule from our truck insurance renewal (redacted).
List each cover line, its premium, the period it covers and the monthly equivalent (premium divided by months in the period).
Then give the total monthly equivalent. If any amount has a payment-plan fee, show it as a separate line. Do not guess; write "unclear" where the document does not say.

An illustrative reply lists liability $9,600 for 12 months ($800 a month), physical damage $5,400 ($450), cargo $1,200 ($100), a payment-plan fee of $840 over the year ($70) and a total of $1,420 a month. That matches the figure used in the example. What to check: the four monthly amounts add to the total, the periods all say 12 months, and the "unclear" lines are looked up rather than ignored. If the policy renews at a different date from your finance and permits, note the date in the sheet so the cost step-up is expected.

Statements to collect before you start

An afternoon's gathering saves a week of corrections. Pull these for the last three months, since one month can be unrepresentative.

  • Fuel card statements, with gallons and amount for each fill.
  • Truck and trailer finance or lease statements, including any balloon or end-of-term payments.
  • Insurance schedule and the payment plan.
  • Payroll records or your own drawings; if drivers are paid per mile, the mileage settlement sheets.
  • Workshop, tyre and parts invoices for the last twelve months, to calculate a reserve per mile.
  • Toll, scale and parking statements.
  • Permit and registration renewal invoices, each with its date.
  • Logbook or tracking export for miles, total and loaded, per month.

If a statement is missing, estimate it and mark the cell in a different colour. An estimate you can see is better than a gap that quietly turns into zero.

Cutting the empty-mile share: a worked check

Because empty miles raise your loaded-mile cost, trimming them is the cheapest improvement. Take the example carrier: 1,440 empty miles of 9,600. At $1.79 a mile, the empty miles cost $2,578 a month. Lifting the loaded share from 85% to 90% means empty miles fall to 960, loaded miles rise to 8,640 and the cost per loaded mile moves to $17,166 ÷ 8,640 = $1.99, down from $2.10 with no change in total cost. If the extra 480 loaded miles also earn $2.35 each, that is $1,128 more revenue without a single extra mile driven.

The number to watch is the share of loaded miles by month. Write it at the top of the sheet. If it slips below its usual level, look at the lanes: the lane sheet shows where the truck returns empty most, and a price premium or a different return load can fix it.

A message to a customer that uses your figures

The cost per mile is also a negotiating tool. When a customer pushes on rate, give them the facts, not a complaint. Here is an illustrative reply, written with an assistant and then edited by the owner.

Hi [first name], thanks for the load on the 12th. At $1.95 a loaded mile I can't take it: my running cost on that lane, including the empty return, comes to $2.14 a loaded mile. I can do it at $2.30, or at $2.10 if you can have a return load ready within 50 miles of the drop. Let me know which works.
[your name]

Notice what is missing: the owner's breakdown, the pay and the margin. Customers need a rate and a reason, not your books. If you use a tool to draft such replies, put the minimum rate and the return-load rule in the instructions and tell it never to quote below the minimum.

Mistakes that make the figure too kind

  • Ignoring empty miles. Dividing by loaded miles only for the rate, and total miles only for the cost, hides a high empty share. Track both every month.
  • Leaving out the owner's pay. The business looks profitable at $1.60 a mile, because you are working for nothing.
  • Counting loan payments as the truck's whole cost. The payment may not match what the truck loses in value. If you own it outright, still put in a monthly figure for replacement, or you will have no truck in six years.
  • Annual bills in one month. An insurance renewal in March makes March look dreadful and the rest look great. Spread it.
  • Assuming a rate includes everything. Detention time, an unpaid wait at a dock, is a cost with no mile attached. Log it in a note column and price it at your hourly truck cost, then use it when you negotiate with a customer.
  • Trusting an average over a year. A cost per mile built from last year hides this year's insurance rise. Re-run it when a major bill changes.

A realistic miss: a carrier priced all its loads from a $1.55 cost per mile worked out from fuel, tyres and driver pay only. After adding insurance, finance and the yard, the true figure was $1.98 per total mile. Fourteen months of quotes at a 10% margin on $1.55 had been losing about $0.28 a mile on every load, and nothing in the weekly cash looked wrong until the truck needed new tyres.

Using the figure to price a load and judge a month

With a loaded-mile cost in hand, price loads using one sentence. Minimum acceptable rate per loaded mile = your cost per loaded mile × (1 + target margin) + the extra cost of empty miles on that lane. For the example carrier, 8% margin gives $2.10 × 1.08 = $2.27. A lane where the truck returns empty over 25% of the distance needs more, and a lane with a certain return load can accept less.

For checking a month, look at three numbers: cost per total mile, cost per loaded mile and the percentage of miles that were loaded. If the first rises and the third falls, the problem is empty miles. If the first rises while miles stay steady, a cost has moved: look at insurance, repairs and fuel in that order. The guide to AI software for small trucking fleets shows what tools can automate here, and using AI to chase late invoices and missing proof of delivery helps with the cash side, since late payment is another cost that never appears on a per-mile sheet.

Keeping it current each month

Set a standing half-hour on the first working day of each month. Download the fuel statement, the toll statement and the loan statements. Run them through the same prompt, check the totals, update the fixed list if a bill changed, and read the three numbers above. Write one line on what changed and why.

Once a year, update the reserve per mile from the year's repair invoices, replace estimated annual bills with the actual renewals, and rerun a slow-month and a busy-month version of the sensitivity table. If you cover a seasonal gap, the plan in seasonal cash flow for the quiet months helps decide how much cash to hold while fixed costs run on.

Cost-per-mile questions from small carriers

Should I divide by total miles or loaded miles?

Use both. Total miles, including empty ones, show what the truck costs to run. Loaded miles, the ones a customer pays for, show the rate you need. Cost per loaded mile is always higher. Quote and accept loads against the loaded-mile figure, and use the total-mile figure to compare months and spot cost creep.

Do I include my own pay if I drive the truck?

Yes. Put in what a hired driver would cost for the same hours, or a drawing you can live on. If you leave it out, your cost per mile looks lower than it is, and you will accept loads that pay the truck but not you. Treat it as a fixed monthly line.

How do I handle costs paid once a year?

Divide annual bills such as insurance, permits and registration by twelve and add the result to each month's fixed costs. For tyres, brakes and other wear, set aside a cost per mile based on past invoices. This stops one expensive month from distorting your figure.

Can AI read my statements for me?

It can pull amounts and categories out of PDFs and CSV files quickly, and flag oddities such as a duplicate charge. It can also misread a number or invent a category, so always check that the total it reports matches the statement total. Remove account numbers and driver personal details before you paste or upload anything.

Further reads

Sources: the reader's own fuel card, insurance, finance, payroll and maintenance statements. The worked example uses invented figures, and no industry average is quoted.

Want your cost per mile built from your statements?

On a 1:1 call we can go through your own statements, build the fixed and variable split in a spreadsheet, and decide which AI step is worth keeping in your monthly routine.

Book a 1:1 call with me