Booked revenue, not inquiries
Rank channels by freight actually booked rather than by forms filled in.
Marketing attribution for logistics and freight companies
Match booked freight revenue to the inquiries and campaigns that produced the shipper, across a relationship that builds over months.
$855,000 57% of $1,500,000 paid
The blind spot
A shipper inquiry is worth nothing until they tender freight, and worth a great deal once they tender regularly. Lead volume tells you which channel produces inquiries, not which produces shippers.
What you get
Rank channels by freight actually booked rather than by forms filled in.
Run over a longer range and every load a shipper tenders traces to the channel that won them.
No tracking numbers, no script. Two exports from systems you already run.
A worked example
Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.
| Channel | Sales | Revenue | Share | % |
|---|---|---|---|---|
| Google Ads | 118 | $465,000 | 31% | |
| LinkedIn Ads | 46 | $210,000 | 14% | |
| Email marketing | 51 | $180,000 | 12% | |
| Direct / Unknown | 149 | $645,000 | 43% |
The value of winning a shipper is every load they tender afterwards. Measuring acquisition on the first booking undervalues whichever channel brings shippers who stay, which in this business is the only kind worth having.
Because matching is on the shipper contact rather than a session, running the report across a year credits the full tender history back to the channel that produced the original inquiry. That comparison usually reorders the channel ranking substantially.
Brokerages spend on both sides and frequently measure them together, which produces a blended number that describes neither.
Splitting the report by side shows which channels produce shippers and which produce carrier capacity. They are rarely the same, and the economics of each are different enough that a blended cost per lead is close to meaningless.
Freight sales generate quotes at a rate nothing else in the business matches. A shipper asks for pricing on six lanes, the desk turns it around the same day, and nothing happens. Quote volume therefore measures how busy pricing is rather than how well marketing is working, and the two are only loosely related. The lanes that attract the most quote requests tend to be the most competitive ones, which is also where acceptance is lowest and where a desk's time disappears fastest.
Ranking on booked revenue pulls the inquiry sources apart. A directory producing forty quote requests a month and two accepted tenders is a different proposition from a campaign producing eight requests of which five book. Cost per inquiry rates them the other way round, which is how a subscription survives renewal after renewal on volume that nobody ever converted into a load. Once the ranking is on freight that moved, the comparison makes itself. It also survives the objection that quote volume varies with lane mix, because booked revenue already accounts for the lanes that were worth winning in the first place.
The pricing desk feels this before any report shows it. Quoting is skilled work and it is finite, so a channel that consumes it without booking is not free — it is charged against capacity that appears in no budget line. Putting channels in order of the freight actually booked makes that cost visible, and it lets the desk's hours be pointed at the sources that convert rather than at whichever inbox filled up first. None of this asks the desk to log anything new. The quotes and the bookings are already recorded in the systems that price and bill them.
Annual RFP cycles run on their own calendar. A shipper opens a bid in the autumn, awards lanes across the winter, and volume starts in the spring — assuming the forecast holds, which it frequently does not. Whatever got the brokerage onto the bid list happened before any of that, and by the time the revenue appears the campaign behind it has been switched off and written up as a cost with nothing to show. Nothing in an advertising platform can hold a connection open across that many months, and nothing in the transport system was ever asked to.
Because the match is on the shipper's contact rather than a session, that gap costs nothing at all. A report run across a full year credits the spring volume to the inquiry that produced the invitation, whenever it arrived. For contract freight, any range shorter than a year is examining one phase of a cycle and mistaking it for the whole thing, which is how well-run campaigns get cancelled a quarter before they would have paid. Running a year also absorbs the effect of one large shipper winning or losing a bid, which otherwise dominates whichever quarter it happens to fall in.
Spot freight behaves in the opposite way and deserves to be read separately. It arrives fast, converts fast, and rewards whichever source is in front of a shipper with a load to cover this afternoon. A column naming the business type, mapped as Product / service, keeps the two apart in the revenue breakdown, with how much of each traces to a channel; the channel ranking itself still covers both, so a source that only helps with spot coverage needs reading with that in mind. Blended together they produce an average that describes neither. Most brokerages already carry that distinction somewhere in the load record, because it drives how the freight was priced.
A transport management system is built to move and bill freight, and it does that job well. Every booked load carries a shipper, a revenue figure and a date, which is the whole revenue side of this exercise already sitting in a report somebody runs monthly. What it does not carry is where the shipper came from. That lived in a rep's notes, in a form on the website, or nowhere at all, because it was never a field anyone was required to complete before saving the record.
The second file supplies it from whatever did record demand: an advertising platform's lead export, a load board or directory's inquiry list, a call log, the registrations from a rate tool. None of them has to be complete. Several can be combined into the one lead file, each row tagged with its source, and every source you add moves rows out of the unattributed bucket; whatever remains there is reported as Direct / Unknown rather than shared out across the sources that happened to be included. Starting with one export is normal, and adding a second source the following month can move a visible share of revenue out of the unattributed column.
Nothing is installed in the TMS and no permissions are granted to it, which is exactly why a finished year works. Load records were kept because they were invoiced and audited, not because somebody was tracking marketing at the time. A brokerage can therefore analyze a completed fiscal year on the first day and decide from what comes back whether this is worth doing every month. If the answer turns out to be no, nothing has been installed, no field has been added to a load record, and nobody has been asked to work differently in the meantime.
Why it matters
"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.
Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.
Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.
Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.
Honest answers
Only booked loads need to be in it, with a shipper contact detail, the revenue and a date. Aggregate by shipper and month if the load count is large.
Which is why they land in Direct / Unknown rather than being credited to this month's ads. Its size is a genuinely useful number.
Combine their exports into the lead file, each row tagged with the board or directory as its source. Matching them against booked freight is the fastest way to see which are worth renewing.
Pricing
The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Enterprise usually fits freight brokerages, 3PLs and carriers — ten seats for the team and the highest monthly record allowance, since a year of closed deals is a lot of rows.
One business closing at volume
$499/mo
billed monthly
Questions
Anything else? Talk to us — a person answers, usually the same day.
Booked loads or shipper revenue: a shipper contact email or phone, the revenue, and the date.
Run the report over a longer range and every load traces to the channel that produced the shipper.
Yes, with a side column mapped as Product / service, and you should — they are different funnels with different economics, and the breakdown shows the revenue and attributed share of each.
Yes: map a lane or mode column as Product / service (one extra breakdown per import), or a region as Location.
No. Ad platform and load-board lead exports work as the second file.
Yes. There was no tag running back then and it makes no difference: the account appears in both files either way.
Aggregate by shipper and month before exporting — the match works the same and it keeps you inside your record allowance.
Revenue rows analyzed in a calendar month. Lead rows do not count.
Yes, with a business-type column mapped as Product / service, which shows the revenue of each with its attributed share. The channel ranking still blends them, so choose a range long enough to cover both rather than one that flatters whichever happened to be busy.
A load booked by a new contact will not link to the original inquiry and lands in Direct / Unknown. A sales row carries one phone number and one email, so use the account's most stable contact on it — often the person who first got in touch — to keep the link holding.
Yes. Combine each one's inquiry export into the lead file, each row tagged with the board or directory, and each is ranked on booked freight beside the paid channels. That single comparison is the fastest way to decide which subscriptions are worth renewing this year.
Only if you want to measure carrier recruitment, which is a different question with its own revenue and its own leads. Start with the shipper side, because that is where the revenue is.
Export it like any other booked revenue, with a column naming the arrangement mapped as Product / service. Much of it will land in Direct / Unknown, which is accurate — the relationship produced that freight rather than a campaign did.
At least one full bid cycle, so an award season and the volume that followed are both inside the file. Twelve months is the practical minimum, and two years is better for a book weighted toward contract freight.
Nearby
Match shipped orders back to the quote requests, trade shows and campaigns that produced them, across cycles measured in months.
See how it worksMatch delivered fleet orders and their gross to the campaigns, events and outbound lists that produced the account.
See how it worksMatch rental revenue and the accounts behind it to the campaigns and calls that produced the customer, across every subsequent hire.
See how it worksWhere your sales already are
From the blog
Manufacturers are told their marketing cannot be measured because the cycle is long, the buyer is a group, and half the revenue goes through distributors. All three are real. None of them prevents you from knowing which inquiries became orders.
Read the articleTrade shows and webinars produce the best-qualified leads most companies get and the worst measurement. The badge scan is not the problem: the gap between the scan and the invoice is. Here is how to price an event by the revenue it closed, months after everybody stopped talking about it.
Read the articleThe cheapest leads you buy can turn into your most expensive customers. Customer acquisition cost by channel divides what a channel cost by the new customers it actually produced, and for a business that closes by phone or in person those customers live in the sales records, not the ad dashboard. Here is the formula, which customers to count, fully loaded against paid-media CAC, blended against per-channel, untraced customers, payback and time lag, with a worked example where cost per lead and CAC rank four channels in different orders.
Read the articleStart today
Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.