Carrier P&L for asset-based fleets

Power BI for Trucking Companies: Revenue Per Mile, Deadhead and Profit Per Truck

We model your TMS, ELD and fuel-card data into one live view built for asset-based carriers — revenue and cost per mile, empty miles, profit by truck, lane and customer, and driver turnover by terminal.

  • Microsoft-certified
  • Hours never expire
  • 3–5 day turnaround
  • No project minimums
  • You own everything
Revenue Overview Revenue$4.2M Margin38% Orders12.4k Churn2.1% Monthly performance By segment 64%

Representative dashboard — sample data

The reporting gap in a carrier operation

Your dispatch board knows every load. It will not tell you which trucks earn their keep

A carrier is a capital business paid by the mile. You buy tractors and trailers, you staff them with drivers who can leave at any time, and every week the money is decided by three things: what the freight paid, how many miles you ran empty to get it, and what those miles cost you. Almost every transportation management system prints a load list, a driver settlement register and an aged receivables report. Very few answer the question the owner actually asks: over the last quarter, which trucks made money, which lanes only look profitable before the deadhead back, and which terminal is losing drivers faster than it can seat them.

That answer needs datasets that rarely meet — orders, stops and settlements in the TMS, odometer and engine data from the ELD, gallons and price from the fuel cards, parts and labor from maintenance, and the fixed cost of the equipment from the ledger. We build the model that joins them on truck, driver and load, so revenue, cost, empty miles and turnover land on one page at the grain that matters: the individual power unit, rolled up to fleet, terminal and customer.

The two numbers a fleet lives on

Loaded rate is not the same as what the truck earned

Revenue per total mile = linehaul revenue ÷ all miles run  ·  Deadhead % = empty miles ÷ total miles — a lane can quote well per loaded mile and still lose money once the empty leg back is counted against it.

Try us risk-free for 4 hours

Buy a block of prepaid Flex hours and, if you're unhappy within the first 4 hours, we refund you in full — no questions asked. Hours are deducted only for work you've reviewed and approved, there's no project minimum, and your banked hours never expire.

Views a carrier uses weekly

Six screens that decide what you haul, who you keep and what you charge

Each one is tied to a decision — repower a lane, re-price a customer, park a unit, or fix a terminal — not a wall of gauges.

Revenue per mile, both ways

Revenue per loaded mile beside revenue per total mile, by fleet, terminal, customer and lane, with fuel surcharge separated from linehaul so a diesel swing does not read as a pricing win.

Cost per mile and operating ratio

Fixed cost per mile — equipment, insurance, overhead — separated from the variable side of fuel, driver pay, tolls and maintenance, rolled into operating ratio by fleet and by period.

Deadhead and empty miles

Empty miles as a share of total, broken down by terminal, dispatcher, lane pair and day of week, so the repositioning you pay for becomes a worklist rather than an accepted cost of doing business.

Profit per truck and per lane

Every power unit on one comparable base: revenue, miles, fuel, maintenance and driver pay against the fixed cost it carries — then the same view by lane and customer, including the backhaul that pairs with it.

Driver turnover and seated trucks

Annualized turnover by terminal, recruiting source and tenure band, beside unseated trucks and days to seat — so the cost of an empty seat is visible next to the cost of the truck standing still.

Fuel and maintenance per mile

Miles per gallon and fuel cost per mile by truck, driver and lane, idle share where the telematics feed supports it, and parts, labor and outside repair per mile with out-of-service days ranked worst first.

What should a carrier dashboard measure?

A fleet report earns trust when every measure has one agreed definition and a documented source. We fix those definitions with your team before any visual is drawn — which mile count is the denominator, whether fuel surcharge sits inside revenue, whether an owner-operator truck belongs in cost per mile at all — then implement them as governed DAX measures (opens in new tab) so the same number survives being sliced by truck, terminal and week.

  • Revenue per mile — loaded and total, linehaul separated from fuel surcharge and accessorials, by customer, lane, terminal and fleet.
  • Cost per mile — fixed and variable split out, with fuel, driver pay, maintenance, tolls, insurance and equipment cost each traceable to the system it came from.
  • Deadhead percentage — empty miles over total miles, attributed to the load that caused the repositioning rather than averaged across the month.
  • Profit per truck — contribution per power unit after variable cost, then after the fixed cost that unit carries, weekly and trailing twelve months.
  • Driver turnover — separations over average drivers employed, annualized, split voluntary against involuntary and cut by tenure band, terminal and recruiting source.
  • Service and detention — on-time pickup and delivery by customer, plus detention hours incurred against detention actually billed and collected.

Why one rate per mile is never enough

Most disputes inside a carrier come from two people quoting different per-mile numbers and both being right. The measures answer different questions, and a freight decision needs them side by side.

Measure How it is calculated Question it answers Where it misleads on its own
Revenue per loaded mile Linehaul revenue divided by loaded miles on the order Is the freight itself priced well? Ignores the empty miles run to reach the pickup
Revenue per total mile Linehaul revenue divided by loaded plus empty miles What did the truck actually earn for every mile turned? Blends a great lane with the repositioning of a bad one
Cost per mile Fixed plus variable operating cost divided by total miles What does a mile cost us to run? Falls as miles rise, so a busy quarter flatters it
Operating ratio Operating expenses divided by operating revenue How much of every revenue dollar is left? Moves with purchased transportation mix, not just efficiency
Deadhead percentage Empty miles divided by total miles How much of the fleet's running is unpaid? A low figure can mean turned-down freight, not tight planning

The modeling problems nobody warns you about

Three traps break carrier reporting, and all three are fixable if they are handled during the build rather than discovered in a board meeting.

There is more than one mile. Routing software miles, the miles you billed the customer, and the odometer or ELD miles the truck actually turned are three different numbers, and they disagree on every load. Dividing revenue by one and cost by another produces a rate per mile nobody can reconcile. We pick the mile count for each measure with you, label it on the report, and keep the alternatives in the model so a discrepancy can be explained rather than argued about.

A load is a date range, not a day. A multi-day movement dispatched on Monday and delivered on Thursday belongs partly to two weeks and sometimes to two accounting periods. If those rows are counted on a single date, weekly revenue per truck jumps and collapses for no operational reason. We resolve it by agreeing the recognition date, then either allocating across the movement or expanding to a daily truck-level fact table, all sitting on a proper star schema (opens in new tab) with a real date table behind the time intelligence functions (opens in new tab) so trailing comparisons are a click rather than a rebuild.

Company trucks and owner-operators do not belong in the same average. One carries depreciation, insurance and a driver on payroll; the other arrives as purchased transportation at a settled rate. Blend them and cost per mile means nothing and neither fleet can be managed. We model them as separate fleets with a shared measure layer, so the group number still exists but is never the only number available.

Which trucking systems do you connect, and how?

We connect the platforms carriers actually run rather than insisting on one vendor. What varies is the route in — a reporting database, a documented API, or a scheduled export — and that choice drives refresh cadence more than anything else in the build. Fleets on McLeod have the most route choices to weigh, so the Cloud IQ workspace, the MPact.IQ templates and a direct read of the LoadMaster Enterprise database are compared side by side on our McLeod Software Power BI dashboard page.

System What we take from it Typical route
Transportation management system
(McLeod, Trimble, Prophesy, Tailwind, ITS Dispatch)
Orders and stops, loaded and empty miles, rates and accessorials, dispatch assignments, driver settlements, invoices Reporting database or replica where the vendor allows it; API or scheduled export where it does not
ELD and telematics
(Samsara, Motive, Omnitracs, Geotab, Platform Science)
Odometer and engine miles, fuel burn and idle, hours-of-service status, location and arrival times for detention Provider API, keyed to the tractor so it joins the TMS on truck and date
Fuel cards Gallons, price paid, purchase location and truck, used for fuel cost per mile and miles per gallon Provider portal API or scheduled transaction export
Maintenance software Work orders, parts and labor, outside vendor invoices, out-of-service days by unit Same platform where maintenance is integrated, otherwise the standalone system or the ledger
Accounting and payroll
(QuickBooks, Sage, Business Central, NetSuite)
Equipment cost and depreciation, insurance, overhead, driver pay and settlements, revenue recognition Native connector or ledger export, joined on truck, driver and period
On-premises databases Any of the above hosted on your own server at the terminal The on-premises data gateway (opens in new tab) with scheduled refresh (opens in new tab)

Where a vendor only offers exports we say so plainly and design around the cadence that gives — usually an overnight refresh, which is fine for a P&L report even when dispatch runs on live screens. We do not promise real-time where the source cannot supply it.

Multiple terminals and who sees what

Once a carrier runs more than one terminal, comparison becomes the point of the report and access becomes the constraint. A terminal manager should see their own trucks, drivers and empty miles without browsing another division's margin or another manager's turnover. We implement that with row-level security (opens in new tab) mapped to your existing terminal and division structure, so one report serves the whole fleet and opening a location is a row in a table rather than a redevelopment.

The comparison itself needs care. Raw revenue per terminal rewards the biggest yard, so we normalize to revenue per seated truck and per total mile on the equipment that terminal actually runs. Purchased transportation gets its own line, because a terminal hitting its number on brokered freight is telling you about capacity, not about its own fleet.

How is this different from the reports already in your TMS?

Fairly: your TMS is good at the operational present — what is dispatched, what is due, who has not been paid. If that is the whole question, you do not need us. What it rarely does is cross the boundary between systems or hold history in a shape you can compare. Profit per truck needs fuel from the card provider, odometer miles from the ELD, repairs from maintenance and fixed cost from the ledger, joined to orders on keys those systems disagree about. That join, done once and kept clean, is the deliverable — and because it lives in your own Microsoft tenant as a model you own, the next question does not need another vendor request or another export.

What does it cost, and how fast?

You buy prepaid Flex hours that never expire. Starter is 20 hours ($2,500), Growth 40 hours ($4,600) and Power 80 hours ($8,000), with senior hourly work from $100. A first build covering revenue and cost per mile, deadhead, profit per truck and driver turnover typically fits inside one block, and most tasks ship within 3–5 business days of your approving the scope estimate.

There is no project minimum. Every request is scoped and priced in hours before work starts, hours deduct only for work you approve, and unused hours stay banked for the next freight season. See how prepaid Flex hours work, or what a typical custom Power BI dashboard development engagement includes.

Who is this for?

Owners, CFOs and operations leaders at asset-based carriers and private fleets — truckload and less-than-truckload, dry van, reefer, flatbed and specialized, tanker and bulk, dedicated contract carriage, intermodal drayage and final-mile fleets. The common thread is owning the trucks and employing or contracting the drivers, so the economics are miles-driven rather than transaction-based, and a head count too small to justify a full-time analyst. What changes between hauling produce and hauling steel is the lane structure and the season, not the model — so the same build serves a twenty-truck operation and a multi-terminal fleet, with only the security roles and the fleet hierarchy differing.

Dashboards we build for carriers

  • Revenue per loaded and total mile
  • Cost per mile and operating ratio
  • Deadhead and empty mile worklists
  • Profit per truck, lane and customer
  • Driver turnover and seated trucks
  • Terminal scorecards with row-level security
3–5

business days, typical

Prepaid

hours, never expire

You

own everything

A first fleet build usually fits inside one Flex block, and hours deduct only for work you approve. See Flex pricing →

How it works

From dispatch records to a fleet P&L you act on

  1. 1

    Scope & connect

    On a free demo we walk your fleet structure, terminals and systems, and agree which mile count, which recognition date and which cost lines belong in a per-mile number. You send the request, we reply with the hours it needs, and once you approve we connect the TMS, ELD, fuel cards, maintenance and ledger into one reconciled model.

  2. 2

    Build & validate

    We stabilize the truck and driver keys, resolve loads to the agreed grain, and write the DAX for revenue and cost per mile, deadhead, profit per truck and turnover. You check the output against your own settlement and P&L reports, truck by truck on a sample, until the numbers are ones you would take to a lender or an insurer.

  3. 3

    Launch & hand over

    We publish to your workspace, set scheduled refresh and row-level security by terminal and division, and train the people who will use it — dispatch, safety, finance and the owner. The report, the model and the credentials are yours at handover, with optional ongoing support from the same block of hours.

Representative perspective

We priced a lane off the loaded rate for years. Putting the empty miles back against it showed the return leg was paying for the outbound, and we renegotiated two customers within a month of seeing it.
Owner, regional truckload carrier

Representative perspective

Turnover used to be a number we reported once a year. Now it sits by terminal and by tenure next to unseated trucks, and the conversation with recruiting is about where drivers leave in the first ninety days.
Operations director, multi-terminal fleet

Find out which trucks in your fleet actually pay

Book a free demo. We'll map your fleet, terminals and systems, then scope the build and tell you the hours it needs before any work begins — and your prepaid hours never expire.

Where this sits next to our other work

Freight covers several very different businesses, and the neighbouring pages answer genuinely different questions. If you arrange freight rather than haul it — a freight forwarder, customs broker, NVOCC or 3PL working job files, trade lanes and customs entries — the money question is job profitability rather than cost per mile, and our CargoWise Power BI dashboard page covers that ground instead. Carriers that also broker surplus freight will use both: this page values the truck, that one values the file.

Shippers are a different buyer again. If your trucks exist to move your own product between plants, warehouses and customers, the wider production, inventory and supply-chain picture lives on Power BI for manufacturing and logistics, and the fleet view described here plugs into it as the transportation cost layer. Operations that rent equipment out rather than run freight with it measure the same physical assets on utilization and return on original equipment cost, which is covered on Power BI for equipment rental companies. Carriers hauling crude, produced water, sand or rig moves often sit next to a producer that measures its costs per barrel rather than per mile; the production, downtime, lifting-cost and AFE side of that business is covered on Power BI for oil and gas companies, and the two pages meet where hauling cost becomes a lease operating expense line. And if terminal managers and dispatchers each need their own slice of the same report, setting up row-level security in Power BI walks through how that is configured.

Carriers who already know which metrics they want and are stuck on getting the data out of the TMS are reading a source-system question rather than a metric one. If that system is LoadMaster Enterprise or PowerBroker, the extraction paths, the order-versus-movement grain and the join to fuel, telematics and maintenance data are worked through on our McLeod Software Power BI dashboard page.

For the mechanics of how a build is delivered — the model, the DAX, the report layout and the handover — see Power BI dashboard development, and how prepaid Flex hours work for pricing. Every task is scoped before work begins from your block of senior-led hours: no project minimums, no surprise invoices, and hours deducted only for work you approve.

Why it's low-risk

Prepaid hours, you own everything

Every task is scoped and approved before work starts, with hours deducted only for approved work — and at handover the report, model and credentials are yours. Hours never expire, and there's a full refund within your first 4 hours.

FAQ

Questions from carrier owners and fleet managers

Start with the four a carrier can act on inside a week: revenue per total mile, cost per mile split into fixed and variable, deadhead as a share of total miles, and profit per truck. Operating ratio, driver turnover and lane margin follow once the mile definitions behind those four are agreed and documented.

Yes. Where the order record carries no empty-mile field, we sequence each tractor's loads by time, treat the gap between one delivery and the next pickup as the empty leg, and measure it against either routing miles or ELD odometer miles. The method is agreed with you first, then documented in the model.

We work with the systems carriers actually run, including McLeod, Trimble, Prophesy, Tailwind and ITS Dispatch on the TMS side, and Samsara, Motive, Omnitracs, Geotab and Platform Science for ELD and telematics, plus fuel cards, maintenance software and the accounting ledger. The route in depends on what each vendor exposes.

Yes. We apply row-level security so a terminal or fleet manager opens the same report and sees only the trucks, drivers and loads belonging to their operation, while head office sees the whole fleet. Roles map to your existing terminal and division structure, so adding a location is a row in a table.

You buy prepaid Flex hours that never expire: Starter 20 hours at $2,500, Growth 40 hours at $4,600, Power 80 hours at $8,000, with senior hourly work from $100. A first build covering revenue and cost per mile, deadhead and profit per truck usually fits inside one block, and most tasks ship in 3–5 business days after you approve the scope.

Book a free demo

Get senior Power BI help, on demand

Tell us the task. We scope it, you approve, and a senior consultant delivers — typically in 3–5 business days. Prepaid hours that never expire.

  • Prepaid hours from $100/hour — and they never expire
  • Senior-led delivery — 20+ years on the Microsoft platform
  • Typical 3–5 business day turnaround
  • Full refund if you’re unhappy in your first 4 hours

The fastest way to reach us is the form — tell us the task and we'll reply within one business day.

All fields are required.

We reply within one business day. No newsletters, no drip campaigns.

Book a Free Demo