Home › Blog › Rate Per Mile Guide

Guide

Rate Per Mile in Trucking: Gross vs Net RPM Explained

DispatchOS AI Editorial · September 2025 · 6 min read

Rate per mile (RPM) is the primary metric freight dispatchers use to evaluate load profitability. But gross RPM — the number a broker posts — and net RPM — what actually reaches the carrier's bank account — are very different numbers. Understanding the gap between them is the foundation of profitable dispatch.

Gross RPM vs Net RPM

Gross RPM is simple: total load pay ÷ loaded miles. A load paying $1,900 for 900 miles = $2.11 gross RPM. That's what the broker offers.

Net RPM is what matters: gross RPM minus all per-mile costs. For a typical dry van operation:

Example cost structure: Fuel: $0.55/mi · Driver: $0.42/mi · Truck payment: $0.12/mi · Insurance: $0.10/mi · Maintenance/tires: $0.08/mi · Overhead: $0.05/mi · Total costs: $1.32/mi

At $2.11 gross RPM − $1.32 costs = $0.79 net RPM. Not $2.11.

The difference is why two loads with similar gross RPM can have dramatically different profitability — fuel efficiency, driver pay structure, and whether deadhead is included all change the net calculation significantly.

Net RPM Benchmarks by Equipment Type

EquipmentTarget Net RPMNotes
Dry Van$1.10–$1.40Competitive market; efficiency-driven
Reefer$1.35–$1.75Higher costs (reefer fuel); higher rates compensate
Flatbed (standard)$1.40–$2.00Securement and tarping increase costs
Flatbed (heavy haul)$3.00–$5.00+Permit costs and complexity priced in
Power Only$1.00–$1.40Lower costs (no freight liability); lower rates
Hotshot$1.20–$2.00Pickup truck fuel economy reduces margin vs semi
Box Truck$0.80–$1.20Regional/last-mile; higher stop volume compensates

How to Calculate Your Floor Rate

Your floor rate is the minimum net RPM that covers all costs with zero profit. Any load below the floor is a money-loser. Here's how to calculate it:

  1. Fixed monthly costs: Truck payment + insurance + trailer payment + ELD + other fixed items (e.g., $3,500/month)
  2. Variable costs per mile: Fuel (total miles × fuel cost ÷ MPG) + tires + maintenance (estimate $0.10–$0.15/mile combined)
  3. Driver pay per mile: Your pay rate or what you pay your driver
  4. Divide total monthly cost by expected loaded miles: $3,500 fixed ÷ 8,000 loaded miles = $0.44/mile fixed cost contribution
  5. Add variable costs + driver pay: Total per-mile cost = your floor
  6. Add target margin: Floor + desired profit = minimum acceptable gross RPM

Why Fuel Price Changes Your Floor Rate

Diesel price is the largest single variable in carrier economics. At $4.00/gallon and 6.5 MPG, fuel cost is $0.615/mile. At $3.50/gallon, it's $0.538/mile — a $0.077/mile difference. Across 10,000 miles per month, that's $770/month difference in fuel cost. Floor rates should be recalculated quarterly at minimum, and immediately when diesel prices move more than $0.50/gallon.

The Deadhead Adjustment

Gross RPM is quoted on loaded miles only. Deadhead miles cost fuel without revenue. A load at $2.00 gross RPM with 150 miles of deadhead is actually:

$2.00 × 800 miles = $1,600 gross ÷ (800 loaded + 150 deadhead) = $1.68 adjusted RPM. The 150 deadhead miles cost roughly $0.45/mi × 150 = $67.50 out of the $1,600 gross.

What is RPM in trucking?
RPM means rate per mile — the amount a carrier earns per loaded mile. Gross RPM is the broker's posted rate. Net RPM is what remains after all costs. Net RPM is what matters for profitability.
What is a good rate per mile for trucking?
Good net RPM targets: Dry Van $1.10–$1.40, Reefer $1.35–$1.75, Flatbed $1.40–$2.00 standard, Power Only $1.00–$1.40, Hotshot $1.20–$2.00, Box Truck $0.80–$1.20. Market conditions and fuel prices affect what's achievable.
How do I calculate my minimum rate per mile?
Add all monthly costs (fixed + variable + driver pay), divide by expected loaded miles, add your target profit margin. That's your minimum gross RPM. Any load below it doesn't cover costs.

Know Your Real Net RPM on Every Load

DispatchOS AI calculates net RPM from your actual cost profile — not the industry average — on every load board opportunity.

Start Free Beta →