How to Build Multi-Carrier Routing Rules for Ecommerce Orders
The right routing rule chooses the lowest expected cost among services that can carry the package and meet the customer promise.
Effective multi-carrier routing does not select the cheapest visible rate. It selects the lowest expected cost among services that are eligible for the package and capable of meeting the customer promise. A durable rule set filters impossible choices first, then compares price, delivery commitment, risk and operational constraints using shipment-level data.
Separate eligibility from preference
An eligibility rule is non-negotiable: maximum dimensions, weight, destination, hazardous-material permission, customs capability, pickup cutoff or service availability. A preference rule ranks the eligible options: price, transit, on-time performance, claims experience or consolidation benefit.
Mixing both into one “preferred carrier” field creates bad decisions. The preferred service may be unavailable for a postal code, too small for the carton or unable to carry the commodity.
Build the routing decision in layers
- Validate the order. Confirm address, destination country, promised date and special instructions.
- Determine the package. Use actual or reliable expected dimensions, physical weight and billable weight.
- Filter services. Remove options that fail commodity, dimension, location, timing or account rules.
- Calculate all-in expected cost. Include net transportation, fuel, residential, delivery-area, demand and non-standard-package charges.
- Apply the service promise. Remove options whose expected delivery misses the customer commitment.
- Choose and log. Select the lowest expected cost among the surviving services and preserve why it won.
A hypothetical routing example
Assume a hypothetical CAD-denominated order can use three services. The customer was promised delivery within four business days.
| Service | Transport | Fuel/accessorials | Total | Expected transit |
|---|---|---|---|---|
| A | CAD $11.20 | CAD $7.10 | CAD $18.30 | 3 days |
| B | CAD $12.80 | CAD $3.90 | CAD $16.70 | 4 days |
| C | CAD $10.40 | CAD $4.20 | CAD $14.60 | 6 days |
Service C is cheapest but misses the promise, so it is ineligible. Service B wins at CAD $16.70. Choosing from transportation price alone would have selected C; choosing the familiar fastest carrier would have selected A. The rule saves CAD $1.60 while meeting the promise.
The recommendation changes if the order is already one day late, Service B’s pickup has closed or destination performance shows that its nominal four-day service frequently arrives later. Routing needs operational time and recent outcome data, not only a static rate card.
Rules worth configuring
- Package profile: letter, parcel, oversize, tube, multi-piece or freight.
- Destination: domestic, cross-border, remote, postal code and zone.
- Promise: required delivery date, not simply service name.
- Commodity: dangerous goods, batteries, food, alcohol or other restricted items.
- Value and risk: signature, insurance, age verification or approved service.
- Capacity: daily carrier cap, trailer close, pickup time and induction location.
- Customer exception: marketplace rule, client contract or shopper-paid upgrade.
Use a cost stack, not a base rate
Fuel can apply to both transportation and certain accessorials. Demand fees can be per package or per pound. Dimensional weight can change the rating weight before either is calculated. That is why routing logic should consume the same fields used in a parcel invoice audit and the packaging data from a dimensional-weight review.
List rates are not enough when accounts have negotiated discounts, minimum charges or written exceptions. Store the effective contract version and the date range. If a carrier publishes a surcharge “until further notice,” make it a maintained rule with an owner—not a one-time hard-coded constant.
Create safe fallbacks
Every routing rule needs a failure path. If no service qualifies, hold the order in an exception queue with a reason code such as “no eligible service,” “rate unavailable” or “promise impossible.” Do not silently select an expensive air service or print a label that violates a commodity rule.
Also define what happens when a carrier API is unavailable. A cached rate may be acceptable for a routine lane for a short period, while a high-value international order may require manual review.
Test before turning rules on
- Replay 30–60 days of shipments through the proposed rules.
- Compare selected service, cost and promised delivery with the actual result.
- Inspect every order whose carrier or service would change.
- Run shadow mode so the rule recommends but does not buy labels.
- Activate gradually by client, lane or package profile.
- Audit savings, late deliveries, manual overrides and invoice variance weekly.
The routing scorecard
Track all-in cost per package, percentage delivered within promise, surcharge incidence, percentage routed automatically, overrides, no-service exceptions and claims. A lower parcel cost is not a win if late deliveries, support contacts or re-ships rise by more.
Give every rule an owner and an expiry check
Carrier tables change at different rhythms: weekly fuel, seasonal demand periods, annual list rates and irregular emergency fees. Assign an owner to review each data source and record when the rule was last verified. A rule that was correct last month can silently misroute thousands of orders after an effective date passes. Keep the prior version for invoice reconciliation, and require a documented test before the replacement moves into production. This change control is as important as the routing formula itself.
Good routing rules make a defensible choice and leave an audit trail. 247 Fulfillment’s Parcel Plus service can help map service eligibility, account terms and customer promises into a testable decision table rather than relying on one default carrier.