Updated
Rate Shopper (previously Shipping Strategies) pulls live rates from your connected carriers, compares the services you’ve made eligible, and applies the winner. It is a rule you apply the way you apply a service — from an automation rule, from the Service drop-down, or in bulk across a selection. If you’re currently choosing carriers with static automation rules, it is a straight upgrade, and configuring it properly is worth an afternoon.
It has also moved on considerably from the preset-strategy feature people remember. You can now build a rate shopper around your own service collection and your own transit thresholds, which is a different proposition from picking Cheapest and hoping.
Most of the disappointment I hear about Rate Shopper turns out to be configuration rather than capability. This is what the feature does, how to set it up so it has the best chance of finding the cheap answer, and which order profiles suit it. If you are still deciding whether to automate rate shopping at all, and which of the three approaches is worth the setup, that is whether rate shopping in ShipStation is worth automating.
Rate shopping is comparing the services available for a parcel against each other and buying the right one for that shipment and that destination, rather than the one you always use. ShipStation does it three ways, and they differ in how much of the decision you make in advance.
The rate calculator, per order. Open a shipment and click the calculator in the top right of the order screen. ShipStation returns rates from your connected carriers for the weight, dimensions and destination on the order, and you pick. It is accurate and it is the right tool when you want the whole picture for one parcel. It also costs a person time on every order, so it stops scaling somewhere in the low hundreds of orders a day.
Automation rules, at import. A rule sets a carrier and service from criteria on the order — weight, zone, destination, order value — with nobody opening it. Rules do not query rates. They apply an answer you decided in advance, which makes them good at classifying an order and unable to price one. Setting a Rate Shopper strategy by rule covers using them for the classifying half and leaving the pricing to Rate Shopper, plus the static rate model to fall back on where Rate Shopper is not available.
Rate Shopper. The rest of this page.
You create a Rate Shopper rule in your ShipStation shipping settings and give it a descriptive name. ShipStation documents three ways to apply it:
Set Rate Shopper action, so it runs on import without anyone opening the order.Whichever route, ShipStation fetches live rates for the eligible services at that point and applies the winner. In the accounts I work in it also re-resolves against current rates as the shipment moves toward the label rather than holding the answer it found on import, so the rate you buy is not necessarily the rate it picked the first time. That last part is not in the documentation, so treat it as an observation and check it in your own account.
One documented limit worth carrying forward: “Rate Shopper only compares services. It does not compare different package types.”
There are three standard strategies:
Those three cover a lot of ground, but the part worth knowing about is the fourth option.
You may be able to build your own, depending on which plan the account is on — custom rate shoppers are not available at every tier. A custom rate shopper uses a service collection to decide which carrier and service combinations are eligible, applies transit time filtering with separate domestic and international thresholds, and selects the cheapest qualifying rate.
This is the version most operations should be running, because it’s the one where you supply the rules rather than accepting a preset. You decide what’s in the pool and you decide how fast is fast enough, separately for domestic and international, and the comparison happens across everything that passes.
Two behaviours to know before you build one:
Rate Shopper is plan-gated, and what a given account gets has changed over time. Check what your own account has in Settings, against ShipStation’s current plan comparison, before planning around it. Whatever it selects, you still see the choice and can override it before the label prints.
Rate Shopper takes the package as an input. ShipStation’s own setup documentation makes this explicit: if you’re automating it, the rule that sets package dimensions has to come before the Rate Shopper rule, in their words “to ensure that all orders generate the appropriate rate”.
This is the single most common misconfiguration. An order that reaches Rate Shopper carrying a default package, or no dimensions at all, gets rated on the wrong box — and the answer will be confidently wrong rather than obviously wrong. Get Product Defaults right first. Rate Shopper can only be as accurate as the package handed to it.
This is the decision that determines how much the feature is worth to you, and it’s entirely yours to make.
Rate Shopper only chooses from services in the collection. If you built an express strategy out of services guaranteed to arrive in two days, an economy service that would also have arrived in time cannot win, because it was never in the pool. The instinct is to keep the collection tight so nothing unexpected gets picked. The better approach is the opposite: put in everything that could ever be an acceptable outcome, then let the transit time threshold decide what qualifies for a given order.
That way eligibility is decided per shipment by the carrier’s delivery estimate rather than in advance by what you happened to think of when you built the collection. Set the domestic and international thresholds separately — they are separate settings for good reason, and using one number for both is how international volume ends up on services nobody chose.
Go through every service on every carrier you have connected and ask whether there is any order for which it would be a reasonable outcome. If yes, include it and let the filter do the work.
The section above assumes every outcome in the collection is acceptable. That is true of one shipping option you sell and not of the others, which is why a single rate shopper for the whole account is usually the wrong shape.
Rate Shopper does not know what the customer was promised. The collection is where the promise gets encoded, so build one per option on your storefront:
The instinct to run one rate shopper across everything is what produces the case where a cheap unguaranteed service wins an order somebody paid a premium for.
You cannot point Service Mapping at a Rate Shopper rule — it sets a carrier, service and package, not a strategy. You do the routing with an automation rule instead, and ShipStation exposes the checkout selection as criteria for exactly this:
Requested Service (Marketplace Value) — in ShipStation’s words, “the carrier/service/package that
the customer selected for the order during checkout”. This is the raw value and it needs no mapping.Requested Service (Mapped) — “the carrier/service/package the requested service has been mapped to in
ShipStation”. This one requires Service Mapping to be set up for that store, and Service Mapping is
store-specific.Either as the criterion, Set Rate Shopper as the action, one rule per shipping option you sell. The sequence
works out because Service Mapping runs after Product Defaults and before automation rules, so whichever value
you key on is populated by the time the rules evaluate.
Some services only go to one kind of address, and a collection that ignores the distinction buys surcharges. FedEx is the clearest case: Ground is the commercial service, Home Delivery is the residential one, and ShipStation documents that FedEx “will charge an additional surcharge for FedEx Ground shipments that are delivered to a residential address, or FedEx Home Delivery shipments that are delivered to a commercial address”.
So a collection containing only FedEx Ground will win an order going to a house, correctly, on price, and cost
you the surcharge afterwards. Put both services in the collection, or split residential and commercial into
separate configurations and route on the Residential / Commercial criterion, which reads whether the address
was verified as one or the other. ShipStation’s own rule examples for this pattern are worth copying.
If you have a carrier you’d rather use for reasons that aren’t price — a relationship, a pickup schedule, claims handling — the wrong way to express that is to narrow the collection down to them. That gives away every comparison to protect a preference you could have expressed directly.
Service Preferences is built for exactly this. Include the whole collection, mark the preferred service, and set a threshold that reflects what the preference is genuinely worth to you per parcel. You keep the carrier when it’s close and you capture the saving when it isn’t.
A few things sit outside the comparison, and knowing which ones stops you looking for a setting that doesn’t exist:
If any of these are a meaningful share of your volume, treat them as a separate decision rather than expecting Rate Shopper to fold them in.
Running Rate Shopper manually per shipment works, but it costs a person time on every order and it’s the first thing to get skipped on a busy day. Use the Set Rate Shopper action in an automation rule and let it run at import.
Then sample the output. Pull a week of shipments and check a handful against what the rate calculator shows for the same parcel. What you’re checking is whether the dimensions were right, because that’s where the error is if there is one.
Rate Shopper does its best work when the package is known before rating and several carriers genuinely compete for the parcel. In practice:
Where you’ll get less out of it, and where the reason is structural rather than a setting you’ve missed:
If your orders look like the first list, configure Rate Shopper properly and you’ll capture most of what’s available. That’s the honest answer and it’s the cheapest one.
If they look like the second list, the gap isn’t in the rating step — it’s that the packing decision and the rating decision need to be made together, and any sequential tool takes the package as an input. What ShipStation automation does and where custom logic becomes necessary covers the rest of that boundary, with ShipStation’s documentation cited throughout so you can check any of it.
Knowing how a carrier prices a package is useful. The harder problem is making the right packing and rate decision on every order, when the correct answer changes with the contents, the destination and the rate card.
String builds and maintains that logic inside existing ShipStation accounts, for operations shipping roughly 6,000 orders a month or more. Below that, ShipStation's native automation and accurate product dimensions will get you most of the way there.
Eight patterns that show up when an operation needs custom shipping logic