
Compare 3PL Proposals: How to Score Bids Apples to Apples
Compare 3PL proposals on the same basis. Four pricing scenarios where bids mislead, how to normalize units, and how to score what is left.
To compare 3PL proposals fairly, put every bid on the same order profile, convert every rate into the same unit, and add up total landed cost per order before you score anything else. Providers quote in different units, include different things, and assume different volumes, so the lowest headline number is often not the lowest cost.
This guide walks through four scenarios where proposals that look comparable are not, shows how to normalize them, compares three sample bids on one order profile, and then scores the results. All rates in the examples are illustrative.
What does it mean to compare 3PL proposals apples to apples?
It means pricing every proposal against the same order history, the same inventory profile, and the same service scope, then expressing the result as one number such as total landed cost per order. Without that step, you are comparing rate cards built on different assumptions, and the differences reflect the assumptions as much as the providers.
Proposals drift apart in three ways, and each one shows up in the scenarios below:
- Units. One provider prices storage per pallet, another per cubic foot. One prices picking per order, another per unit, another by order size. A rate only means something once you know what it is charged against.
- Scope. One quote includes packaging, account management, and fuel. Another bills them separately. A line that looks free may sit in a different line, or nowhere.
- Assumptions. Each provider prices the volume, units per order, pallet height, and shipping network it believes you have, and those beliefs differ unless you gave everyone the same data.
This is also why price is only one of four dimensions in Slotted's fit framework, which weighs capability, cost, team, and trust together. Clean cost numbers come first, so the harder-to-score dimensions get your attention instead of a spreadsheet argument.
Scenario 1: One provider quotes storage per pallet, another per cubic foot
Storage quotes can only be compared after you convert them to the same unit and check the assumption behind each one. A per-pallet rate usually assumes a maximum pallet height, and a per-cubic-foot rate charges for what you actually store. Converting at your real pallet size can reverse which one looks cheaper.
The setup. A brand stores about 120 pallets, each built 60 inches tall on a 48 by 40 inch footprint. That is 66.7 cubic feet per pallet, or 8,000 cubic feet in total, and the brand receives about 30 pallets a month.
- Provider A quotes $20 per pallet per month and assumes pallets up to 48 inches tall.
- Provider B quotes $0.36 per cubic foot per month.
The headline comparison. Convert B to a pallet: 66.7 cubic feet times $0.36 is $24 per pallet. A looks about 17% cheaper at $20.
What changes once you read the assumption. A's rate stops at 48 inches, and the brand's pallets arrive at 60. Each tall pallet has to be broken down and rebuilt, so 120 pallets take up 150 pallet positions (60 divided by 48 is 1.25), and A charges $15 per pallet received to rebuild them. Storage becomes 150 times $20, or $3,000, plus 30 rebuilds at $15, or $450. That is $3,450 a month. B stays at 8,000 cubic feet times $0.36, or $2,880.
The provider that looked 17% cheaper per pallet costs $570 more per month, about $6,840 a year, for the same inventory. Neither provider did anything wrong. Each quoted a rate against a different picture of the brand.
If a third provider prices by bin or by square foot, convert it the same way: translate your inventory into that provider's unit, then back into a monthly dollar figure. Peak matters too. At 160 pallets, A's bill rises to $4,450 and B's to $3,840, so compare at your peak inventory as well as your average.
Scenario 2: One provider charges per order, another per unit, another by order size
Pick and pack quotes only compare once you apply each pricing model to your actual order mix. The ranking depends on how many units are in your average order, so a mix that shifts with bundles or multi-item baskets can change which provider is cheapest.
The setup. A brand ships 6,000 orders a month. Of those orders, 45% have one unit, 38% have two, 12% have three, and 5% have five, which averages about 1.8 units per order.
- Provider A charges $2.75 per order plus $0.45 for each additional unit.
- Provider B charges $1.15 per unit picked plus $1.00 per order packed.
- Provider C charges by order size: $2.10 for one unit, $3.60 for two to three units, and $5.40 for four or more.
The headlines are hard to line up. $1.15 looks like the lowest number, and "from $2.10" looks like the next lowest, but they are charged against different things.
At 1.8 units per order, the monthly pick and pack bills are about $18,710 for A ($3.12 per order), $18,560 for B ($3.09), and $18,090 for C ($3.02). The three land within 4% of each other, with C slightly ahead.
Now change the mix. The brand launches bundles, and the average rises to 2.65 units per order: 20% one-unit orders, 30% two-unit, 25% three-unit, 15% four-unit, and 10% five-unit. A drops to $3.49 per order, C lands at $3.75, and B climbs to $4.05. B went from the middle of the pack to the most expensive, and A went from last to first, with no change in anyone's rate card.
The lesson is to give every provider the same order-size distribution, not only an average, and to ask yourself what your mix will look like in a year. Our guide on questions to ask a 3PL before you sign includes the pricing questions worth asking while you are at it.
Scenario 3: One provider offers a discount off list, another a flat rate per package
Shipping quotes compare only after you price the same package through each provider's discount, dimensional weight divisor, and surcharges. A large percentage off list can still cost more than a flat per-package rate, because the discount applies to a base that may be heavier and may exclude extras.
The setup. The brand ships 6,000 parcels a month. A typical package is a 12 by 10 by 8 inch box that weighs 3 pounds, going to Zone 5. These carrier rates are illustrative, and real surcharges vary by carrier and contract.
- Provider A quotes 45% off carrier list, uses a dimensional weight divisor of 139, and bills residential delivery and fuel separately.
- Provider B quotes $12.40 per package, all-in for the zone and weight band, with a divisor of 166.
Dimensional weight first. The box is 960 cubic inches. Divided by 139, that is 6.9, which rounds up to a 7 pound billable weight. Divided by 166, it is 5.8, which rounds up to 6 pounds. The carrier bills the higher of actual and dimensional weight, so a 3 pound box is billed as 7 pounds under A and 6 pounds under B. UPS uses 139 for its published daily rates and 166 for retail rates, which is a reminder that the divisor is a term to check, not a constant.
Then the price. Say list price for 7 pounds at Zone 5 is $15.20. A's 45% discount takes that to $8.36. Add a $3.00 residential surcharge, and 16% fuel on both ($1.82), and A's package costs $13.18. B's costs $12.40.
B is $0.78 cheaper per package, which is about $4,670 a month and $56,000 a year at 6,000 packages. A's "45% off" is the bigger number on the page, and it loses anyway.
Before comparing, line up four inputs side by side: the dimensional weight divisor, the accessorial charges, fuel, and whose carrier account the rates come from. Confirm too how many facilities each provider included in its shipping network. A two-node bid sits next to single-node bids, and the two are not like for like unless you ask the provider to price both ways. Slotted passes transportation pricing through as submitted, so these checks fall to you.
Scenario 4: The fine print sits outside the rate card
Minimums, one-time fees, order-value pricing, and contract terms rarely appear in the headline rate, and each can change which proposal is cheapest. A cheap sticker price propped up by surcharges and minimums is often the expensive quote, so every proposal needs a pass for what sits outside the rate card.
Four places the cost hides:
- Minimums. Say a quote carries a $12,000 monthly minimum. At 6,000 orders, the fulfillment bill runs about $22,500 and the minimum never shows up. In a 2,500-order January, the bill would be about $9,400, and the minimum adds roughly $2,600. A seasonal brand pays for that gap every slow month, so model low months as well as the average.
- One-time fees. A provider with an $8,000 implementation fee and one with none are not equal on day one. Spread the fee across the contract term, and $8,000 over 24 months adds about $333 a month. If you are leaving an incumbent, add exit fees and inventory transfer costs so staying and switching are measured on the same basis.
- Pricing tied to order value. Say a provider charges 1.5% of order value, capped at $2.50 per order. At a $60 average order that is $0.90. At $120 it is $1.80. At $200 or more it hits the $2.50 cap. The same quote is cheap or expensive depending on your real order values, so run it against your actual orders and not a single average.
- Recurring extras and terms. Packaging billed at cost plus 10%, a monthly account fee, a 3% capped annual increase versus a 4% fixed one, and a three-year term with auto-renewal can each be priced or scored. None of them sits in the base rate.
This is where the most surprises come from. Providers fill gaps in your data with their own assumptions to keep a proposal moving, and the assumptions rarely match yours. Ask every provider for a full rate card that lists what is extra, and read it line by line before you build any comparison.
How do you normalize 3PL proposals before scoring?
Give every provider the same order history and inventory profile, convert every rate to a cost per order or per month using the same assumptions, and add every fee that is not in the base rate. Then model at least three volume cases, so you see where each proposal changes ranking.
A repeatable process looks like this:
- Build one common profile. Orders per month, units per order and the full order-size mix, SKU count, inventory in pallets and in cubic feet at your real pallet height, pallets or cartons received each month, average order value, returns rate, and typical package size, weight, and destination zones. Send the same package to every provider.
- Check the unit on every rate. Per order, per unit, per shipment, per receipt, per pallet, per cubic foot, per hour. A wrong unit on one line repeats across every order, so it is worth checking each one.
- Convert to a monthly cost, then to a cost per order. Use your profile, not the provider's. If a rate depends on an assumption, such as a maximum pallet height or an average order weight, write the assumption beside it.
- Add what sits outside the base rate. Minimums, surcharges, packaging, account fees, implementation fees spread over the term, inbound freight, and any freight you pay on retail orders. If you are comparing against an incumbent, add the one-time cost of moving.
- Line up the shipping inputs. Dimensional weight divisor, accessorials, fuel, whose carrier account the rates come from, and how many facilities are in the network.
- Run three volume cases. Low month, expected month, and peak month, plus a growth case if you plan to scale. Rankings often change between them.
- Confirm your reading with each provider. Before anything is decided, check that both sides read the numbers the same way. Scrutinize outliers hardest. A quote far above or below the others is most often a misread assumption or a poor fit.
Slotted normalizes fulfillment rates into one comparison from the data the brand provides. Transportation pricing is passed through as submitted, and anything outside the platform, such as LTL and inbound freight, has to be added by hand to get a full picture.
What does a normalized comparison look like?
Once three proposals are priced on the same profile, total landed cost per order often lands within a couple of percent, even when individual lines differ by 25% or more. That narrow spread is the useful result. It moves the decision to capability, service levels, and fit, where the real differences usually sit.
The profile. 6,000 orders a month at about 1.8 units per order (the mix from scenario 2), 120 pallets in storage at 60 inches tall, 30 pallets received a month, one typical package (scenario 3), and packaging that averages $0.85 per order. All rates are illustrative.
What each provider quoted:
- Provider A: $20 per pallet per month for pallets up to 48 inches, $15 per pallet to rebuild taller ones, $12 per pallet received, $2.75 per order plus $0.45 per additional unit, packaging included, 45% off carrier list with a divisor of 139 and residential and fuel billed separately, and a $3,000 monthly minimum.
- Provider B: $0.36 per cubic foot, $55 per hour for receiving labor (about half an hour per pallet), $1.15 per unit picked plus $1.00 per order packed, packaging at cost plus 10%, $12.40 per package all-in with a divisor of 166, and an $8,000 implementation fee spread over 24 months.
- Provider C: a dedicated 2,000 square feet at $1.55 per square foot, $18 per pallet received, $2.10, $3.60, or $5.40 per order by order size, $12.90 per package, and a $1,500 monthly account fee.
Normalized monthly cost on the common profile:
- Provider A: about $101,590 a month, or $16.93 per order.
- Provider B: about $102,610 a month, or $17.10 per order.
- Provider C: about $100,630 a month, or $16.77 per order.
The spread from lowest to highest is about 2%. A's minimum never bills at this volume, so it does not change the total here. B's cost sits in different places than A's or C's, which is where comparing only some lines misleads:
- Fulfillment lines only (storage, receiving, pick and pack, packaging, fees): A is $22,520, C is $23,230, and B is $28,200. B looks about 25% more expensive than A.
- Shipping only: B is the cheapest at $74,400 a month, against $77,400 for C and $79,070 for A.
- All-in: the three are within about 2% of each other, and C is lowest.
Compare any one slice and you pick a different winner. Compare the whole and the question changes from who is cheapest to who is best at the same price.
How do you score 3PL proposals once the numbers match?
Turn total landed cost into a 1 to 5 score using a rule you set before bids arrive, score capability, SLA, and fit on the same scale, and apply weights that reflect your priorities. A common starting split is 40% cost, 30% capability, 20% SLA, and 10% fit, shifted toward whatever matters most to your brand.
Six habits keep the scoring honest:
- Set the scale and weights first. Use 5 for strongest in the field, 3 for meets the requirement, and 1 for fails it, which is a potential disqualifier. Set weights before you read proposals, so a provider's pitch cannot move them. Raise capability for complex handling, multiple facilities, or fast growth. Raise SLA if service failures are why you are leaving your current provider. Raise cost if margin pressure drives the search.
- Convert cost with a rule. For example, within 3% of the lowest landed cost scores 5, and each further band of a few percent drops a point. A rule stops a 1% difference from reading as a full point.
- Set hard stops. List the requirements that rule a provider out on their own, such as a missing compliance capability, and apply them before weighting anything.
- Mark confidence on every score. Label each one confirmed (backed by documents or a reference), verify (stated but not checked), gap (the provider cannot do it), or not disclosed (no answer). A well-written answer with no evidence should not outscore a proven one.
- Resolve the open items. Take every verify and not disclosed score back to the provider, and use reference calls and site visits to confirm or contradict what the proposal says.
- Keep the evidence. Write down the basis for each score. Your notes become the feedback you give providers who do not advance.
Scoring the three sample bids. All three are within 3% of the lowest landed cost, so each scores 5 on cost. On the other dimensions, say Provider A scores 3 on capability, 4 on SLA, and 3 on fit. Provider B scores 5, 4, and 4. Provider C scores 4, 3, and 4. At 40/30/20/10 weights, A totals 4.0, C totals 4.2, and B totals 4.7.
B has the highest landed cost of the three, and it still wins, because the price gap was small and its capability was strongest. The score also carries caveats worth acting on. B's 5 on capability stays at verify until a reference call backs it, and C's 3 on SLA reflects an answer the provider never fully documented, so it sits at not disclosed.
A scorecard does not pick the provider for you. It lays the evidence side by side and shows where the mismatches are, so your decision rests on comparable answers and your own judgment. Our 3PL selection criteria guide covers the criteria behind each dimension, and 7 signs a 3PL is the right fit covers how to read the fit side.
Start your RFP on Slotted
Comparing proposals by hand means chasing units, assumptions, and missing lines across a stack of spreadsheets. Slotted has every provider price the same brand data and puts their fulfillment rates into one side-by-side comparison, so mismatches show up before you score. Start your RFP on Slotted.
Frequently asked questions
How do you compare 3PL proposals?
Give every provider the same order history and inventory profile, convert each rate to a monthly cost and a cost per order using your assumptions, and add the fees outside the base rate, such as minimums, packaging, and implementation. Then compare total landed cost at low, expected, and peak volumes before you score capability, service levels, and fit.
Why are 3PL quotes so hard to compare?
Providers price in different units (per pallet, per cubic foot, per order, per unit), include different services in the base rate, and assume different volumes, order sizes, and pallet heights. Unless every provider prices the same data, the differences between quotes reflect assumptions as much as real cost.
What is total landed cost for a 3PL?
Total landed cost is the full monthly cost of using a provider: receiving, storage, pick and pack, packaging, shipping, minimums, account fees, and one-time costs spread over the contract term, divided by orders shipped. It shows what each order actually costs, which a base rate alone does not.
How should you weight cost against other criteria when scoring 3PL proposals?
A common default for a cost-driven RFP is 40% cost, 30% capability, 20% SLA, and 10% fit. Set the weights before you read proposals, and raise capability, SLA, or fit when complex handling, service failures, or long-term partnership are driving the decision.