The decision chart

One picture: the stock, the spread, the profit per load, demand and capacity, on the same clock

Read top to bottom. The share price leads; the spread and Robinson's profit per load follow it by two to three quarters; demand and capacity explain why the spread moves. Background bands are the cycle phases (grey A bottom, amber B squeeze, green C catch-up, red D top). The hatched zone on the right is a projection: what the average of the 2017-18 and 2020-21 squeezes did next, applied from 1Q26, plus the Bloomberg forward P/E bands for the stock. It is a reference path, not a forecast.

Share priceCHRW, $ weekly → monthly. Dashed = analog path from 1Q26. Bands = forward P/E −1 SD / mean / +1 SD on $7.15.
The spreadRobinson TL price y/y minus cost y/y (pp, quarterly, blue) and DAT spot minus contract linehaul ($/mi, monthly, orange). Below zero = squeeze.
Profit per loadNAST gross margin % (quarterly). Dashed = UBS model path. 14%+ is the catch-up signal.
DemandCass shipments y/y % (monthly). Crossing zero while capacity is capped is the bull mechanism.
CapacityTender rejections OTRI % (violet) and net carrier authorities per month (bars). Rejections falling from a peak = squeeze easing.
Buy trigger board

The rule: explicit levels, pass or fail, and what the score means

Two rule sets, tested on every quarter-end since 4Q17 (35 readings). Rule A (entry) is contrarian: it fires when the stock has already fallen hard, Robinson's price-minus-cost gap is at or below zero, and truck rates are not collapsing. That combination has fired 6 times (the sixth is 1Q26, still open); the 5 with a known outcome were all positive over the next 12 months, averaging +26%. Rule B (confirmation) is what most people wait for. On this stock it is late: when 2 of 3 confirmation tests passed, the next 12 months averaged +4%; when 1 or fewer passed, +14%. Use A to decide whether to be in at all, B to decide when to add, and the trim rule to know when the easy part is over.

Rule A · Entry (all three must pass)

Why these three: a 15%+ drawdown means the multiple has already been cut; a gap at or below zero means profits are cyclically depressed, not peaking; spot not down more than 10% y/y means this is a squeeze (which ends when contracts reprice) and not a bust (which does not end until trucks leave). Without the third test the rule would also have fired in 2Q23 and lost 7%; spot was down 14% y/y then. The third test was set after seeing that loser, so treat it as a sanity filter, not a proven edge.

Rule B · Confirmation (add when two of three pass)

These are the "it's turning" signals. They lag the stock by two to three quarters. Two of three passing while Rule A still holds is the add signal. All three passing with the stock within 10% of its high is the trim signal: 3Q18 is the only clean instance and the stock fell 15% over the next year.

Verdict today

What the rules did in the past

Every quarter-end since 4Q17, newest first. Draw-down is from the trailing 52-week high; gap is CHRW TL price y/y minus cost y/y (GS model to 1Q26, company after); spot is DAT van linehaul y/y from 2023 and BLS truckload PPI y/y before that; +6m and +12m are the price change over the following 6 and 12 months. Green rows are Rule A fires.
C.H. Robinson · where are we in the truckload cycle

Freight Cycle Tracker

Every indicator that moves Robinson's spread, on one page, each one voting for a cycle phase. Public series (Cass, truckload PPI, diesel, trucking jobs, share price) refresh automatically each day via GitHub Actions. Market series that live behind paywalls (DAT spot and contract, tender rejections, Class 8 orders, FMCSA exits) and Robinson's own quarterly disclosures are entered by hand in data/manual.json.

Phase vote: what the indicators say, weighted

Latest readings

Green = bullish for Robinson's gap re-opening; red = squeeze or demand deterioration; amber = mixed. Hover the charts below for the history behind each number.

Indicator-by-indicator phase read

Each row is mechanical: a rule converts the latest reading into a phase vote (A bottom, B squeeze, C catch-up, D top, E bust). The weights reflect how directly each series drives Robinson's gross profit per load. Rules are listed under Sources.
Entry signposts

The checklist that decides whether B is turning into C

Status is set by hand after each data release. Rule of thumb from the research: start a position at three greens including margin or revisions, full size at four.

Mechanics

How the contracts actually work, and why the squeeze happens

Everything on this page feeds one number: the gap between what a shipper pays Robinson and what Robinson pays the trucker. These are the rules of that game, from expert calls with former Robinson staff, brokers, shippers and carriers (AlphaSense, 2025-26) and Robinson's own 2026 calls.

1. The annual bid

Large shippers run a truckload RFP once a year, mostly September to December for a March start. Brokers and carriers quote a rate per lane (say Chicago to Los Angeles, dry van). The shipper ranks them into a route guide: primary, secondary, tertiary. About 75-80% of large-shipper freight is still bid annually; roughly 20% of the market has moved to quarterly bids, and multi-year deals with mini-bids are growing.

Why it matters: Robinson's sell price on ~70% of its truckload volume is set once, in the bid, and then sits there for 12 months while its buy cost moves every day.

2. The contract is a gentlemen's agreement

The rate is "live" until expiry, but there is no binding volume and no linehaul escalator. The shipper is not obliged to tender loads; the broker is not obliged to accept them. When spot runs 20-30% above contract, carriers and brokers simply reject tenders, the route guide "falls apart", and the load goes to spot at a premium. That is what the tender rejection index (OTRI) measures.

Why it matters: the squeeze is self-limiting. Robinson chooses how much loss-making contract freight to haul to protect the relationship; experts said it was losing money on some contracts in mid-2026 and living on spot margins.

3. Contract vs spot economics

Contract freight is high-volume, low-margin: mid-to-high single-digit gross margins to keep Fortune-100 relationships. Spot is the hedge: 15-20% margins, "double or triple" contract. Robinson's mix is ~70% contract (up from 65% a year ago), which is why its blended NAST gross margin (13.1% in 2Q26) sits between the two.

Why it matters: a higher contract mix means a bigger squeeze when spot spikes and a bigger payoff when contracts reset. Landstar (100% spot) reprices instantly; Robinson waits for the bid.

4. Mid-cycle repricing: mini-bids and the "three-week" claim

When costs jump 30%, brokers go back to shippers to "meet halfway" or push most of the increase through; shippers run mini-bids on the lanes that broke. Historically that takes two to three quarters. In September 2026 Robinson said its AI tooling has cut the average time to reprice the contract book to three weeks, applied lane by lane, with a 93% acceptance rate.

Why it matters: if the three-week claim holds, the margin trough is shallower and earlier than past cycles. It is unproven at scale. The 4 Nov print is the test.

5. Fuel is a pass-through

Nearly all freight is priced as linehaul + fuel surcharge. The surcharge is indexed to the DOE weekly diesel average and resets automatically, on both contract and spot, from shipper to Robinson to carrier. Diesel went from ~$4 to ~$6.50 in 2026.

Why it matters: fuel does not change gross profit dollars, but it inflates gross revenue and dilutes margin percentage. Track gross profit per load, not margin %, when diesel moves. It also hurts small carriers, who pay 5-10% more for fuel than big fleets, which pushes capacity out.

6. How Robinson buys the truck

About 850 carrier reps still call carriers daily alongside the digital load board (Navisphere Carrier). Carriers are graded on on-time and reliability. Scale and network density let Robinson buy an estimated 4-5% cheaper than a digital-only broker. Insurance and carrier vetting are now part of procurement: post-Montgomery, the eligible small-carrier pool is smaller and the cost of "quality" capacity higher.

Why it matters: the buy side is the moat. When capacity is scarce, the broker that can find a compliant truck at the best price keeps the spread.

The chain, start to finish

STEP 1
Shipper runs annual bid (Sep-Dec)
STEP 2
Robinson wins lanes at a fixed sell rate (70% of TL volume)
STEP 3
Loads tendered daily; Robinson buys trucks at spot cost
STEP 4
Spot rises: cost > price, tender rejections climb, margin squeezed
STEP 5
Mini-bids and the next bid reset sell rates; spot plateaus
STEP 6
Spot rolls below contract: widest gap, record margin, then bust
Steps 4 to 6 are phases B, C and D on the cycle map. Contract terms (no volume commitment, no escalator, fuel pass-through) are why the sequence repeats rather than being negotiated away.
The spread

What shippers pay vs what truckers cost

DAT dry van national averages. Spot above contract squeezes Robinson's 70% contract book; spot rolling back below contract after a bid season is the broker's sweet spot. The truckload producer price index from the BLS is the free, long-history proxy for contract pricing.

DAT dry van spot vs contract, $/mile

Spot minus contract spread, $/mile, and tender rejections

Spread below zero after a bid reset is the 2022 pattern that produced record margins. Tender rejection index (SONAR OTRI, %) rising means carriers refuse contract loads to chase spot: an early warning of squeeze. Manual series from news coverage; exact daily values require a SONAR licence.

Truckload PPI (BLS, long-distance TL), y/y %

FRED PCU484121484121, monthly, auto-refreshed. Blends contract and spot, includes fuel. Peaks in this series (2018, 2022) preceded Robinson's earnings peaks by 6 to 12 months; troughs (2019, 2023) preceded the share-price bottoms.

Diesel, $/gallon (EIA weekly) and y/y

FRED GASDESW, auto-refreshed. Fuel is a pass-through surcharge indexed to this series, so it inflates gross revenue and dilutes margin percentage without changing gross profit dollars. It also raises small-carrier costs, which pushes capacity out.
Demand

Is anyone actually shipping more?

The 2026 rally is supply-driven. The bull case needs the demand leg to arrive while capacity is still capped. Cass Freight Index, auto-refreshed from FRED.

Cass shipments y/y % vs Robinson NAST truckload volume y/y %

Robinson beating Cass is the share-gain evidence (13 straight quarters through 2Q26). Cass shipments negative for 15 quarters is the demand trough. Watch for the Cass line crossing zero.

Cass expenditures y/y and implied cost per shipment y/y

Expenditures ÷ shipments is a free proxy for the all-in freight rate. When it runs far ahead of shipments, rates are doing the work, not volume: exactly the current picture.
Capacity

Trucks and drivers: leaving now, returning when?

Capacity leaving pushes spot up (squeeze now). Capacity returning caps spot (broker sweet spot later). Orders lead deliveries by 6 to 18 months.

Class 8 net orders, units per month

Manual series from ACT Research / FTR preliminary releases. Replacement demand is roughly 18k to 20k a month; sustained orders above 30k signal a capacity flood 12 to 18 months out.

FMCSA net change in for-hire carrier authorities

Manual series from FTR / Carrier Details as reported in trade press. Negative = more carriers exiting than entering = supply leaving. This is the series behind the 2026 "supply-driven recovery".

Truck transportation employment (BLS), y/y %

FRED CES4348400001, auto-refreshed. A slow but public read on driver supply. Falling employment with rising rates is the 2026 signature.

Enforcement and exit events

Drivers placed out of service on English-proficiency checks, non-domiciled CDL revocations, notable carrier failures. Entered by hand as reported.
Robinson's own disclosures

The gap, measured at the company

Robinson discloses truckload price per mile and cost per mile changes every quarter. The difference is the squeeze; the NAST gross margin is its result. The company also gives three monthly AGP-per-day readings on each call, the only intra-quarter signal it provides.

Truckload price per mile vs cost per mile, y/y % (18 years)

Source: Goldman Sachs model "Volume, Pricing, Cost History" tab (company-disclosed, 1Q08 to 1Q26) plus quarterly releases since. Cost above price = squeeze (2011, 2014, 2018, 2021, 2026). Price above cost = sweet spot (2009, 2016, 2019, 2022-23).

NAST gross margin % and adjusted operating margin %

Gross margin = AGP ÷ gross revenue (the spread). Operating margin = operating income ÷ AGP (the cost base). The bull case is the first line recovering to 14%+ while the second holds near 40%.

AGP per business day, y/y % by month

Management's monthly cadence, given on each earnings call. Deceleration inside a quarter (Apr +9, May +7, Jun +3 in 2Q26) is what the bears cited.

Quarterly KPI table

From press releases and call transcripts; null where not disclosed. Add a column each quarter in data/manual.json → chrw_q.
Cycle analogs

How the last two squeezes played out, aligned at the start

Quarter 0 is the first quarter in which Robinson's truckload cost per mile rose faster than its price per mile by more than 3 points. Lines show what happened over the following two years. If 2026 follows the pattern, the margin trough is one to two quarters away and the share price bottoms before it.

Price minus cost gap, percentage points, from squeeze start

Positive = spread widening. 2017-18 and 2020-21 both spent about four quarters negative before turning.

Share price, indexed to 100 at squeeze start

In both prior squeezes the stock was flat to up during the squeeze and ran in the catch-up phase. 2026 is the first squeeze where the stock fell, and the difference is the July verdict.
Stock

Share price and valuation context

CHRW vs Knight-Swift vs S&P 500, indexed (weekly, auto-refreshed)

Knight-Swift is the asset-based comparison: when truckers outperform brokers during a squeeze, the market is pricing Bernstein's "assets win the repricing" view.

Forward P/E bands (Bloomberg basis)

Update valuation in manual.json when consensus moves. Bands: 5-year mean 20.8x, ±1 SD 16.8x / 24.9x (24 Sep 2026).
Calendar

Dates that flip signposts

Sources and updating

Where each series comes from and how to refresh it

Phase-vote rules