Supply Chain Action Points
Read this first — the conclusion, and the moves to make:
- Measure the override rate on the booking screens in week one and publish it by branch every Monday; anything above 20% means the ranking is advisory, not policy.
- Reconcile booked weight against flown weight for the last four weeks by 15 November, at route level, and split every gap into padding and forecast error.
- Cap booked-but-not-flown at 3% on lanes above 85% load factor where peak spot runs more than 20% over your contract rate; leave soft lanes at 5% or unmanaged.
- Ask each carrier in writing at renewal how flown-versus-booked feeds your next allocation, and record whether the sensitivity looks nearer 0.5 or 1.0.
- Replace padding with the free-cancellation window in your contract: book to need, release inside the cut-off, and log a reason code on every release.
- Open a rate renegotiation when your booked rate runs more than 8% above the three-month market forecast for two months running, and freeze every leak target when the spread turns negative.
CargoAi has launched CargoMART Strategic Hub, 12 modules that push head-office airline preferences straight into the search results local teams book from, so policy stops being a memo. Procurement benchmarking sets negotiated and booked rates against live market conditions; the rate benchmark mixes six months of history with forecasts one, three and six months out, by route, airport, region and weight break. Allocation data puts booked weight against flown weight, the gap where committed capacity leaks.
The Analysis
Think of it as a queue. Shipments arrive, capacity is the server, and the search result list on a booking screen is the scheduler that decides which shipment gets which server. For twenty years procurement wrote the scheduling rule on a memo and hoped the scheduler read it. CargoAi's CargoMART Strategic Hub, launched with twelve modules, is an attempt to stop hoping: airline preferences and commercial weightings from head office get pushed straight into the search results that local teams book from, so the rule and the thing enforcing it end up sitting in the same place.
Where's the bottleneck here? Not in the data. Twelve modules is a lot of surface area, and four of them do real work: procurement benchmarking that sets negotiated rates against booked rates against live market conditions; a rate benchmark that mixes six months of history with forecasts one, three and six months out, drillable by route, airport, region and weight break; and an allocation view that puts booked weight against flown weight. The tight station in this system is the moment a person picks a row on a screen, and whether that person is allowed to pick a different one.
That last module is the one I want to pull apart. Booked weight minus flown weight is committed capacity you did not use, and it is the parameter that moves everything else: your allocation score, the space you get next season, the premium you pay in peak. Below I model that gap, run one set of numbers with the assumptions written out, and finish with four dials and the thresholds to put on them.
Start with what is nailed down. CargoAi launched CargoMART Strategic Hub: twelve modules that push head-office airline preferences and commercial weightings into the search results local teams book from. Procurement benchmarking sets negotiated rates against booked rates against live market conditions. A rate benchmark mixes six months of history with forecasts one, three and six months out, and drills by route, airport, region and weight break. Allocation data puts booked weight against flown weight. That is the whole verified list. Everything after this paragraph is my modelling, and I will label the assumptions when I lean on them.
Why now, and who is pushing. Procurement negotiates centrally; booking happens locally, at a screen, in a branch, often at five in the afternoon against a customer who wants an answer now. That distance is where contract savings go to die. Three things moved to make the distance worth instrumenting. Rates moved enough that the gap between what was negotiated and what the market is doing became visible money rather than a rounding error. Distribution moved: the booking that used to be a phone call is now a search and a click, so there is finally a place to inject a rule. Carriers moved: allocation is tight enough on the lanes that matter that flown-versus-booked behaviour gets scored, and scored behaviour has consequences. Stack those three and the last mile of procurement became worth wiring.
Put a season on it. Allocation runs to the IATA summer and winter seasons, so capacity you leak in October is priced into the space you are offered next season. That gives the whole exercise a deadline nobody advertises: roughly six to eight weeks of clean booking data before the December peak, and something like ten to fourteen weeks before the renewal conversation that actually decides things. Miss the window and you will be arguing about a score after the score has been written.
Let's build the model properly, because the model is what makes a dashboard useful or decorative. Requests arrive at some rate: your shipments, with weights and ready times. The server is allocated capacity, finite and per flight. The scheduler is the ranking on the booking screen. The policy, meaning prefer this carrier and weight this commercial term, is the scheduling rule. Now add the loop most reporting leaves out: what actually gets flown feeds a score, and the score determines the capacity you are allocated next cycle. That loop has a dead time of one season, about six months. A control loop with six months of dead time and no compensator oscillates: teams over-book to protect space, get trimmed, panic, under-book, run short, buy spot, then over-book again next cycle. If your booking behaviour has ever had that rhythm, it is not a discipline problem, it is a dead-time problem, and reports do not fix dead time.
So where's the bottleneck here? In a queue, throughput is set by the tightest station, and here the tightest station is compliance at the click. Which means one parameter dominates the system: the override rate. If a local team cannot book off-policy, the ranking is the policy and the twelve modules are real. If a local team can book off-policy in two clicks with no reason code, the ranking is a suggestion and the twelve modules are an expensive wall chart. Effective policy strength is roughly one minus the override rate, and the interesting design question is not how pretty the ranking looks but where the override gets recorded, who sees the number, and whether the override carries a reason.
Here is the part the coverage did not reach, and it is the part that decides whether any of this pays: allocation leakage. Booked weight against flown weight is not a reporting nicety, it is the variable that moves the whole system. Capacity you were allocated, or capacity you committed to, that you did not fly is capacity somebody else could have used, and in most carrier relationships it lands as a no-show, a roll or a short-ship that quietly drags down the score you carry into the next cycle. Two bills arrive. The immediate one, if your contract carries a no-show or late-cancel fee. The deferred one, which is the allocation trim, landing a season later as less space and a bigger spot bill at exactly the moment spot is expensive.
Mechanically the leak is not spread evenly, and its shape tells you who owns the fix. A good chunk sits on weight breaks: a shipment that is really 430 kilos gets booked at 500 because the rate step at 500 is worth more than honesty, and when it ships at 430 the gap is baked in by the rate structure itself, not by bad behaviour. More of it sits at specific origin airports, where trucking to the gateway is unreliable enough that local teams book early and often and cancel late. That is why the drill-down by route, airport, region and weight break matters more than the headline screen: the drill-down is the diagnostic, the aggregate is only the temperature.
Quantify first, then optimize, and here that comes with a warning, because the leak metric is noisier than it looks. At a true rate of eight per cent, the half-width of a ninety-five per cent interval is about 1.96 times the square root of 0.08 times 0.92 over n. To know your leak within three percentage points you need roughly three hundred and fourteen bookings. At eight bookings a week on a lane, that is thirty-nine weeks. Most outfits will be staring at a lane-month cell with forty or fifty bookings, where a three-point move is indistinguishable from noise, and will then spend a quarter explaining a wobble that was never there. Aggregate up to route or region until a cell clears three hundred bookings, or set the action threshold at twice the noise, about six points, and stop reading decimals on small cells.
Before you blame anyone, split the gap. Booked minus flown equals booked minus forecast, plus forecast minus flown. The first term is padding: somebody booked above plan because they wanted protection, a policy problem owned by whoever sets booking rules. The second term is forecast error: the plan itself was wrong, demand came in light, and no booking rule would have helped. Two owners, two fixes, and the split takes twenty minutes in a spreadsheet. If your gap is mostly the second term, a policy engine will not fix a forecasting problem, and the honest move is to spend the money on the forecast.
Now the arithmetic, with assumptions stated so you can swap them. Assume a lane out of South China into Europe, twelve tonnes a week committed, booked-but-not-flown at eight per cent: 0.96 tonnes leaking each week, about twenty-five tonnes over a twenty-six-week season. Assume a contract rate of 2.40 dollars a kilo and peak spot at 3.30, so space outside your allocation costs you 0.90 a kilo more. Assume the carrier trims next season's allocation by roughly the leaked volume; call that sensitivity k and start at k equals one, because I will come back and turn it. Assume no no-show fee, which is the generous case for padding.
Scenario A, keep padding. The 0.96 tonnes a week you leaked comes out of next season's allocation and you replace it at spot: 960 kilos times 0.90 is 864 dollars a week, and over twenty-six weeks that is 22,464 dollars. Scenario B, book to need. Commit 11.2 tonnes, fly about 11.04, leak roughly one and a half per cent, keep the allocation. On the eight weeks a season when demand genuinely runs to twelve tonnes, you buy the extra 800 kilos at the premium: 720 dollars each time, 5,760 dollars for the season. The difference is about 16,700 dollars per lane per season, in favour of telling the truth about what you will ship.
The reason it is not close is structural, and it generalises. Padding charges you the premium on the leaked tonnage every week of next season; it pays out only in the weeks you actually needed the pad, and only on the pad you could actually use, which is smaller than the leak by construction. Write it as a break-even: padding is rational only when the share of weeks you need the pad, times the usable pad, times this season's premium, exceeds the leak times next season's premium. With the numbers above that is p times 0.8 times 900 against 0.96 times 900, which needs p above 1.2, impossible. Padding loses at any probability when next season looks like this season.
Two knobs flip that answer, and both are worth finding before you act. One is k, the carrier's allocation sensitivity. If the score is weighted so a tonne of leak costs you half a tonne of allocation, the bill halves to roughly 11,200 dollars and the break-even probability drops to about 0.6, which makes padding defensible on a lane you genuinely fill in sixty per cent of weeks. Nobody publishes k, so ask at renewal, in writing, how flown-versus-booked feeds your allocation. The other knob is next season's premium. The break-even probability is 1.2 times the ratio of next season's premium to this season's. Expect the market to soften by half and the ratio is 0.5, dropping the threshold to 0.6; expect it to tighten and the threshold climbs above one, at which point there is no honest case for padding at all. That is what a one, three and six month forecast is for: not a number to glance at, an input to this inequality.
Who feels what, and roughly how much. The shipper or beneficial cargo owner holding its own allocations carries the biggest exposure, because it owns the score and pays the spot premium when the trim lands. A global forwarder's head office gains a control channel it has never had, and inherits a political problem: every branch that was padding for self-protection is about to become visible. Branch teams lose the quiet autonomy of the override, and the good ones will argue, correctly, that central rules ignore local transit reality.
Airlines get cleaner flown data, which lets them price reliability properly, so chronic no-showers lose space to chronic performers. Mid-size forwarders without allocated capacity can skip the allocation module; for them the money sits in procurement benchmarking, the negotiated versus booked versus market triangle. On the lane dimension the split is blunt: above roughly eighty-five per cent load factor the score is real money; on a soft lane with space available the score costs nothing and pushing volume through to protect it is money thrown away.
Put a clock on the transmission. Policy hits the screen on day one, and behaviour moves the same week if the ranking binds; if it does not bind, nothing moves and you will not know for two weeks. The override rate is readable in week one or two, though a branch cell running thirty bookings a week needs six to eight weeks before a five-point change means anything. The leak rate needs a quarter at route level before you act on it, given the sample sizes above. The money lands last: the trim shows up at renewal or the season change, six to twelve months after the behaviour that caused it. That lag is the whole game. You are billed in season N+1 for decisions made in season N, by a meter you cannot see.
Ömer Kaya would probably start somewhere else entirely: which route and which node does this actually change? He would be right to. On a lane with three viable routings and a credible alternative gateway, losing a tonne of allocation is annoying, because the freight can move. On a single-gateway lane, or one where the alternative costs two extra days, the allocation score is not one input among many, it is the entire capacity plan. So the priority order for fixing leaks should be set by substitutability first and leak size second, which is the opposite of what a list of worst-leaking lanes will tell you.
Now the counterfactuals, because the conclusion is not universal. Suppose the market softens through next season and spot sits at or below contract. The allocation trim then costs nothing, space is there when you want it, and every dollar spent on booking discipline went to defending a score with no value. The whole play collapses into the rate benchmark, and the right move becomes the opposite one: keep the flexibility, renegotiate against market, stop treating allocation as an asset. Check the sign of the spread before you start enforcing anything.
Suppose the override rate settles at forty per cent and nobody's bonus touches it. Then the policy injection is cosmetic and you have bought a dashboard with twelve windows. There is a cheap test: publish the override rate by branch and see whether it falls without anyone being told to lower it. If it does not fall, you do not have a policy problem, you have an incentive problem, and the fix is a written rule about when an override is legitimate, meaning transit fails, the preferred carrier has no space, or the customer named a carrier, rather than a prettier ranking.
One more, and it is the reason I stay cautious about benchmarking as a category. Live market conditions, in a system that also sells or distributes that market, is a mirror as much as a window. If a few hundred procurement teams read the same number and react the same way in the same week, the number starts to describe the reaction instead of the market. Cross it against something you control: your own spot quotes from two or three carriers on a fixed lane, sampled on a fixed day each month. If your sample and the benchmark disagree for two months running, believe your sample and go ask why.
What to do, starting this week. Instrument the override before you instrument anything else, with a reason code on every override, because reason codes are a free diagnostic of contract gaps: a cluster of overrides on one carrier at one airport is a contract problem wearing a compliance costume. Publish it weekly by branch. No targets for the first month, because you are establishing a baseline and a baseline with a target attached is a baseline nobody believes.
Then build the leak metric at a granularity the statistics can carry: route or region level, cells above roughly three hundred bookings, reported monthly, with the padding and forecast split shown alongside. Set the action threshold at twice the noise on the cells you can actually fill, and write the threshold down before you look at the numbers. A lane-month cell holding fifty bookings needs a six-point move before it earns a conversation.
Set the leak target above zero, not at zero. Zero leak on a tight lane usually means you are under-booking, and under-booking is spot buying with extra steps. Two to three per cent is a reasonable target where peak spot runs more than twenty per cent over your contract rate; five per cent is fine on a lane with space available. Use the free-cancellation window in your contract instead of padding: book to need, hold the option, release inside the cut-off with a reason code. That is an option you already paid for, and it does not touch the score.
Watch for the metric turning on you, because it will. Goodhart's law is just a control loop with an adversarial plant, and booking teams are excellent plants. Rank branches by leak and they will book below the weight break and lose the rate step, or book short and miss the flight, and both cost more than the leak did. Report rate per kilo achieved next to the leak, in the same table, every month, so no branch can win one column by losing the other.
Four dials, one page, reviewed monthly: override rate with reason codes; leak rate with its padding and forecast split; the spread between your booked rate and the three-month market forecast; and k, the carrier's allocation sensitivity, as far as they will tell you. Thresholds: open a rate review when the booked rate sits more than eight per cent above the three-month forecast for two consecutive months; start managing booking discipline when the leak clears five per cent on a lane above eighty-five per cent load factor with a positive next-season spread; stop managing it and switch to renegotiation the moment the spread turns negative. Do not set these once and walk away, because the dead time in the loop means a threshold that was right last season can be exactly wrong this one.
None of this requires the twelve modules. The modules make measurement cheap; they do not make the decision. What decides it is whether the ranking binds, how big the leak really is once you have enough samples to believe it, what your carrier does with that leak at renewal, and which way the market is going. Get those four numbers onto one page and the rest is arithmetic. That is the trick with systems like this one: the bottleneck is rarely where the software points, and it is almost always a parameter nobody was measuring.
↑ Back to the key points