Your Canadian truck already drove that lane empty. Northbound finds the freight it could legally have carried
10,479 completed legs, 1,596,093 miles, two months of Roadstar Trucking's real dispatch data. Coming home empty happened six times. The real empty running is inside the United States, between loads, and whether it could have carried freight turns out to be a legal question, not a routing one. 19 CFR 123.14(c)(1) permits US point-to-point carriage when it is part of the return of the vehicle to its base country, so the verdict turns on which way the load runs. 217 legs, 66,702 miles, $155,815 at ATRI's 2025 industry cost, already travelling toward the border and legally able to carry. GLM 5.2 on SPUR reads the offer, a deterministic TypeScript engine cites the statute. Ablation on 100 real offers in five broker formats: 100 percent correct verdict with the model, 40 percent without.

Their data corrected my thesis
I went in assuming the problem was coming home empty from the Midwest. Roadstar's data said no: across 10,479 completed legs and 1,596,093 miles, six empty legs home in two months. 222,635 miles ran empty overall (13.9 percent), and the biggest bucket is repositioning inside the United States: 778 legs, 126,874 miles. Whether any of those legs could have carried freight is a legal question rather than a routing one, because a Canadian-domiciled truck may not haul US point-to-point freight unless a specific carve-out applies. That is the whole engine.

Cabotage is directional
Almost every distance-based optimiser treats US cabotage as a flat prohibition. It is not. 19 CFR 123.14(c)(1) permits carriage between US points where it is incidental to international traffic, and explicitly says a US point-to-point move counts as incidental when it is 'as part of the return of the vehicle to its base country.' So the customs test turns on which way the load is going. Columbus to Brampton is green (international). Columbus to Atlanta is red (moving away from home base, and Northbound names the exposure: section 592 of the Tariff Act and the driver's B-1 admission). Columbus to Detroit is amber (US domestic, but headed home, so it clears with both citations attached).

The headline number
217 empty legs, 66,702 miles, already travelling toward the border and legally allowed to carry US point-to-point freight. At ATRI's published 2025 industry cost of $2.336 per mile, that is $155,815. It repeats, which means it is fixable with standing agreements rather than luck: Fairburn GA to Walton KY 10 times, Morris IL to Richmond IN 13 times, Scottsville KY to Walton KY 11 times. And 120 of those empty legs ran within 150 km and 48 hours of one of Roadstar's own loads going to Ontario. Fairburn is twenty miles from Atlanta. Same company, two trucks, one of them empty and legally able to carry, one of them loaded to Etobicoke.

How a verdict is decided
A dispatcher pastes an offer the way it actually arrived, as a broker's email or a one-line chat message. GLM 5.2 on SPUR Compute reads it into structured fields (origin, destination, commodity, weight, pickup and delivery windows). That is the surface the dispatcher touches, and it is the part regex is bad at and a language model is good at. Then the law decides in TypeScript, against the cited regulation, because a model should never be the thing asserting what a statute permits.


Plans the clock across the border
The same driver has different hours on each side of the border. Driver 84 in Roadstar's roster shows 53 hours on the US cycle and 11 the moment the truck crosses at Bluewater. Border wait is priced live from CBP's public API, commercial and FAST lanes separately, and a wait over 30 minutes is credited as the break the driver already owed. The board renders 34 real trucks against two rulebooks and live crossing waits.

Measured what the sponsor's model contributes
Every entrant at a sponsored hackathon asserts the sponsor's model is essential. Northbound measured it. Same 100 real orders, rendered in five broker formats (email, chat message, structured web form, PDF quote, phone-transcript style), read twice. With GLM 5.2 on SPUR in the code path, 100 percent reach the correct legal verdict. With the model switched off and a fair rules parser standing in, 40 percent. That gap is not a claim about model quality in general, it is a number about what happens on messy freight offers a dispatcher would actually receive. The ablation is recorded to docs/ablation-n100.txt and locked by scripts/check_claims.py so it cannot drift silently.

What is not claimed
$155,815 is a floor on what was already legal, not a projection of what will be captured. It measures what Roadstar's own two months of empty running could have earned if the dispatcher had had the verdict at offer time. It does not model any change in behaviour, any lost margin from repositioning contracts, or any operational cost of chasing amber legs. Every number in the README is recomputed from the raw sheets by scripts/check_claims.py, which fails the build if the prose and the data disagree. It caught four mistakes in my own writeup the first time it ran. Of the 31 tests, one exists only to lock the headline, so a change to the geocoder cannot quietly move the money figure.
Northbound: your Canadian truck already drove that lane empty, this finds the freight it could legally have carried
View the project