Getting to the Right Carrier — Routing and Ship-Via Selection
Why Carrier Assignment Matters More Than You Think
Every shipment needs to be assigned to a carrier and a service level: overnight air express, standard ground parcel, less-than-truckload consolidation, or full-truckload direct. In small operations, a person makes this decision for each order, drawing on their knowledge of the customer's carrier contract, the destination zone, and the weight and dimensions of the shipment. As order volume increases, this becomes a significant bottleneck — and a consistent source of errors when the person making the decision is under time pressure, unfamiliar with a particular customer's requirements, or working from outdated rate information.
The Ship Via value is not merely a label on the order — it is a single setting that drives a connected chain of downstream actions: which label format is used (PDF vs ZPL thermal), what freight cost is calculated, which EDI message format is transmitted to the carrier, and which truck the carton is loaded onto at the dock. Getting it wrong creates rework at multiple stages and, in the worst case, a carton on the wrong truck.
The Routing Guide
eWAVE handles carrier assignment through a Routing Guide — a prioritised rule table that evaluates each shipment against a series of criteria and applies the first matching rule. The Routing Guide is configured once by a Super User and then runs silently during every wave's routing step, making the correct carrier assignment without manual intervention. The result is consistent, fast, and auditable: every assignment is traceable back to the specific rule that triggered it.
Routing Rule Matching Criteria
| Criterion | Description | Example |
|---|---|---|
| Ship-from location | Which warehouse or company originated the shipment | Singapore Main Warehouse |
| Ship-to customer | Specific customer account — for customer-level carrier contracts | Customer: Mega Retail Pte Ltd |
| Ship-to country | Destination country — for international carrier selection | Country: Malaysia |
| Ship-to postal zone | Named zone group covering multiple postal codes | Zone: SG-Central |
| Distribution channel | Sales channel type — B2B, B2C, marketplace, internal transfer | Channel: E-commerce |
| Department | Business division within the company | Department: Wholesale |
| Max carton count | Upper limit on number of cartons in this shipment | Max: 5 cartons |
| Max total weight | Upper weight limit triggering freight carrier instead of parcel | Max: 30 kg |
| Max total volume | Upper volume limit for parcel carrier eligibility | Max: 0.5 m³ |
How Rule Matching Works
Rules are evaluated from the highest priority number to the lowest. The first rule where all specified conditions are satisfied is applied — this is called "first match wins." Conditions within a rule are combined with AND logic (all conditions must match). If a condition field is left blank in a rule, it is treated as a wildcard — it matches any value for that criterion.
This means:
- Specific rules at the top: rules that target a specific customer + a specific country + a specific weight range should have the highest priority. They only match the exact scenario they are designed for.
- General rules at the bottom: a rule with all condition fields blank (or only Ship-from specified) acts as a catch-all. If no specific rule matches, this default ensures every shipment gets a carrier assignment rather than being left unrouted.
- No match = exception: if a shipment reaches the routing step and no rule matches (because there is no default rule and no specific rule applies), the system flags the order for manual carrier assignment and generates a supervisor alert.
Example Routing Guide Configuration
Sample Routing Guide — Singapore Warehouse
Setting Up Carrier (Ship Via) Records
-
Navigate to Configuration → Ship Via This menu is accessible to Super Users only. Create one Ship Via record per carrier service level combination — for example, "FedEx Priority Overnight" and "FedEx Economy" are two separate records, even though both are FedEx.
-
Enter carrier details Enter the carrier name, service level description, and SCAC code (Standard Carrier Alpha Code) if applicable for EDI transmissions. Set the transit time in days — used to calculate estimated delivery dates on shipping documents.
-
Configure label format Select PDF for carriers that accept standard-format labels (uploaded to a portal or printed to an office printer) or ZPL for carriers that support Zebra thermal label printing directly via the printer's IP address. Most major express carriers (FedEx, DHL, UPS) offer ZPL-compatible label generation through their shipping APIs.
-
Attach freight rate tables (optional) If you want eWAVE to calculate landed freight costs per shipment, attach the carrier's rate zone definitions and weight-break rate table. eWAVE will look up the destination's rate zone, find the applicable weight bracket, and calculate the freight charge automatically. This data is used for landed cost reporting and can be included on shipping invoices.
-
Link to Routing Guide rules Add this Ship Via to one or more Routing Guide rules as the result of the match. When the routing step in a wave runs, shipments matching the rule's criteria will be assigned this Ship Via.
Rate Zones and Freight Rating
For operations where freight cost visibility per shipment is important — whether for recharging customers, managing carrier spend, or cost-per-order reporting — eWAVE's freight rating module calculates the freight charge at the time of carton confirmation:
- Rate zone assignment: each destination postal code or country is mapped to a named rate zone (e.g., Zone 1 = within Singapore, Zone 3 = Malaysia, Zone 5 = International rest of Asia). These zone definitions come from the carrier's published rate card.
- Weight break lookup: the carton's actual weight (from the weighing step, if captured) or the declared weight (from cubing) is matched against the rate table's weight brackets (e.g., 0–5 kg, 5–10 kg, 10–25 kg).
- Rate calculation: the system multiplies the applicable rate (cost per kg or flat rate for the weight bracket) by the carton weight and returns the freight charge. This charge is stored on the carton record and rolled up to the shipment total.
Dynamic Routing Override
For situations where the permanent routing rules need to be temporarily overridden — a carrier capacity crunch during peak season, a special routing arrangement for a promotional campaign, or a one-time customer instruction — eWAVE supports per-order and per-wave routing overrides available to Back Office Users:
- Per-order override: on an individual order record, a Back Office User can manually set the Ship Via field, bypassing the routing guide for that order only. The manual assignment is flagged as an override in the audit record.
- Per-wave override: when creating a wave, Back Office Users can specify a Ship Via to apply to all orders in the wave, overriding whatever the routing guide would have selected. Useful for peak-period carrier consolidation.
- Dynamic rule flag: individual Routing Guide rules can be flagged as "overridable." This allows a Back Office User to temporarily disable a specific rule without deleting it — the rule is dormant until re-enabled by a Super User.
Key Concepts — Episode 10
- Routing Guide: prioritised rule table evaluated automatically during the wave routing step
- Rules match on: ship-from, ship-to customer or zone, distribution channel, max cartons/weight/volume
- First match wins: rules evaluated top-to-bottom; most specific rules at top, catch-all at bottom
- Ship Via: carrier + service level record — drives label format, freight cost calculation, and EDI output
- Label formats: PDF (standard) or ZPL (Zebra thermal direct) — selected per Ship Via record
- Freight rating: rate zones + weight break tables → automatic freight charge per carton at time of pack
- Per-order and per-wave routing override: available to Back Office Users without changing permanent rules
- Dynamic rule flag: temporarily disable specific rules without deleting them
- Always include a catch-all default rule at lowest priority to ensure every shipment is assigned