Operations

26 June 2026 · 6 min read

Managing Multiple Carriers and Automatic Carrier Selection

Working with a single carrier is simple but expensive. We explain how to build a rule-based shipping infrastructure that automatically assigns the best carrier based on region and dimensional weight.

Managing Multiple Carriers and Automatic Carrier Selection

Working with a single carrier is simple, but expensive: no single company can offer the best deal in every region, every dimensional-weight bracket, and every speed expectation. When set up correctly, multi-carrier management lowers shipping costs, shortens delivery times, and removes the operational risk of depending on one company. In this article, we walk step by step through how to build a rule-based shipping infrastructure that automatically assigns the best carrier based on region and dimensional weight.

Why isn't a single carrier enough?

Carrier performance in Turkey varies significantly from region to region. One company may deliver next-day without issue in the Marmara region, while taking four days to reach a district in Eastern Anatolia; another company may do the exact opposite. Pricing follows a similar pattern: dimensional-weight-based tariffs differ from carrier to carrier — one is more competitive for low volumetric weights, another offers better rates for bulky items.

Relying on a single carrier also has a hidden cost: bargaining power. A seller who gives all their volume to one company sits down at the negotiating table with little leverage when the contract comes up for renewal. A seller working with two or three carriers, who can shift volume based on performance, gets better rates and can keep shipping uninterrupted during a strike, system outage, or capacity crisis at any one carrier. Especially during campaign periods, a single carrier's branch capacity filling up turns into delays and customer complaints that aren't even the seller's fault. It's also worth treating carrier selection as part of your fulfillment model; we cover different models in detail in our order fulfillment models comparison.

Dimensional weight and region: measure the two core variables correctly

The foundation of automatic carrier selection is two data points: the shipment's dimensional weight and its destination region. If either is wrong, no rule built on top of it will work correctly.

Dimensional weight is volumetric weight: it's calculated by dividing the product of length x width x height (cm) by 3000, and the carrier bills whichever is greater — dimensional weight or actual weight. The most common mistake in the field is never recording dimensional weight per product, or entering it "by eye." This causes damage in both directions: understate it and you'll face surprise differences at invoicing time; overstate it and you'll overpay on every shipment. What needs to be done is clear:

  • Keep the packaged dimensions and weight of every product (per variant) on the product card,
  • For multi-item orders, calculate total dimensional weight based on your packaging logic; if two items go into a single box, use the combined box's dimensions instead of summing individual dimensional weights,
  • Regularly compare the dimensional weight carriers measure against what you declared during invoice reconciliation; if there's a systematic deviation, correct the product cards.

On the region side, thinking at the province level is often not enough. There can be both delivery-time and surcharge differences between a province's central district and a village served by mobile distribution. Your rule engine needs to operate at least at the province level, and ideally at the district level.

Building the rule engine: a priority-ordered decision chain

Automatic carrier selection is a decision chain that runs the moment an order is created. A well-built rule engine evaluates rules in priority order, and the first match wins. A typical chain is structured like this:

  1. Exception rules at the top: cash-on-delivery orders should go only to carriers offering that service, cold-chain or fragile items to the carrier that handles special transport, and orders from a specific customer group to the contracted carrier.
  2. Region-carrier matches: assignments like "these provinces go to this carrier" based on your performance data. For example, the carrier with the lowest return rate and fewest delay complaints becomes the default for that region.
  3. Dimensional-weight bracket rules: shipments of 0-2 in dimensional weight go to the carrier with the most economical rate, while shipments above 30 route to the carrier — or warehouse — strong in bulky freight.
  4. Cost comparison: if none of the rules above produce a definitive assignment, let the system pick the cheapest carrier for that shipment based on current rates.
  5. Default carrier: make sure there's always a fallback default at the end of the chain that applies under any condition; a gap in the rules should never halt shipping.

The rule engine should also have an "override" mechanism: for a legitimate reason (branch at capacity, vehicle didn't arrive), the warehouse team should be able to manually change the assignment — but these changes must be logged. If the manual-override rate keeps rising, it means your rules aren't reflecting reality on the ground.

"Leaving carrier selection to a human decision on every order means answering the same question a hundred times a day; a rule engine answers it once and applies it consistently to every order."

Rate management and cost comparison

For the "pick the cheapest carrier" rule to work, the system needs to know current rates. Define each carrier's contracted tariff in the system — including dimensional-weight brackets, regional coefficients, fuel surcharges, packaging fees, cash-on-delivery commission, and insurance and other add-on items. It's critical that the comparison be based not on the sticker price but on the "true shipment cost" including all add-on charges; when surcharges aren't accounted for, the carrier that looks cheapest can turn out to be the most expensive on the invoice.

Rates change a few times a year. Assign an owner responsible for updating tariffs in the system whenever a price increase comes through; an outdated tariff means your rule engine can keep assigning the wrong carrier for months. Also set up a reconciliation report that automatically compares month-end carrier invoices against expected system cost. Experience shows that sellers who reconcile regularly capture noticeable savings on shipping expenses; mismeasured dimensional weight and duplicate billing quietly pile up in accounts that skip reconciliation. If you'd like to review operational cost items beyond shipping, our article on 6 operational tactics that cut shipping costs is a good complementary read.

Measure carrier performance, and route volume accordingly

Price is only half the equation; the other half is delivery quality. Every package delivered late or damaged comes back to you as customer-service load and return cost. So track at least the following metrics for each carrier, broken down by region:

  • Average delivery time (from dispatch to delivery),
  • On-time delivery rate,
  • Damage and loss rate,
  • Rate of shipments returned as undeliverable,
  • Actual cost per shipment.

This data is the feedback loop that feeds your rule engine's region-carrier matches. Reviewing a quarterly performance scorecard and shifting a weakening carrier's regions to a stronger one both preserves service quality and sends carriers the message that "volume follows performance." A well-built comparison table can summarize different carrier profiles at a glance (the figures below are illustrative and should be updated with your own contract data):

Carrier profileRegional coverageAvg. deliveryPrice range
National network (Carrier A)All provinces, including rural2-3 business daysMid-high
Metro-focused (Carrier B)Major cities and surrounding areas1 business dayMid
Economy rate (Carrier C)Mainly Marmara and Aegean2-4 business daysLow
Bulky/fragile freight (Carrier D)Regional, warehouse-focused3-5 business daysVaries with volume

The customer side: tracking and notifications from one place

The customer-facing side of a multi-carrier setup shouldn't get complicated. Customers don't care which carrier shipped their package; they care where it is. So deliver a unified tracking experience: send the tracking number automatically the moment an order is marked "shipped," and pull status changes during transit (out for delivery, delivered, not found at address) from carrier APIs and relay them through your own notifications. An operation that catches "not found at address" the same day and calls the customer prevents a significant share of returns before they even happen.

On the checkout page, too, multi-carrier can become an advantage: pricing options like standard and express delivery through different carriers and presenting them to the customer both improves the experience and lets you charge the extra cost of express delivery to those who want it. Another key factor in shipping speed is the warehouse process before a package ever reaches the carrier; we cover packing and picking efficiency in detail in our warehouse layout and picking efficiency guide.

Conclusion

Multi-carrier management comes down to simple rules fed by the right data: keep dimensional weight accurate on the product card, measure regional performance, define rules in priority order, and verify the result by reconciling with invoices. Once this loop is in place, carrier selection stops being a human decision, operations speed up, and costs visibly go down.

Quick checklist

  • Is the packaged size and weight of every variant recorded on the product card?
  • Do you have active contracts with at least two carriers?
  • Does your rule engine define the exception → region → dimensional-weight → cost → default chain?
  • Are tariffs, including add-on charges (fuel, cash-on-delivery, insurance), up to date in the system?
  • Is the month-end carrier invoice automatically reconciled against system cost?
  • Is carrier performance measured by region and used to steer volume distribution?
  • Do "not found at address" notifications turn into same-day action?

Running this whole setup manually is exhausting even at small volumes; at scale it becomes close to impossible. Şimşek Software's e-commerce platform comes with built-in multi-carrier integrations, a dimensional-weight-based rule engine, and automatic tracking notifications; define your shipping rules once, and watch every order get assigned to the right carrier automatically — all from a single panel.

arrow_back
Previous Post

The product description and sizing guide that lowers your return rate

Next Post

Setting up SLA and ticket management for customer service

arrow_forward

Let's take the next step together

Discover all the enterprise features with a demo account tailored to your brand.