RateCardLab

How to Compare 3PL Quotes Apples to Apples

Published 2026-08-05 · Data last verified 2026-08-04 · Methodology

You have three or four quotes open in tabs and no way to rank them. One leads with $2.65 per order, one with $7.74, one prices per unit instead of per order, and one bills its software weekly. They are all quoting the same work.

The quotes are not comparable because vendors slice the same underlying cost into different line items. Fix that and the ranking falls out in about an hour.

Why the quotes can’t be compared as written

Fulfillment cost is roughly the same physical work everywhere: receive a pallet, put it away, rent the space, pick the items, pack the box, buy the label, process the return. What varies is where each vendor draws the lines between those activities and which lines it prints on the quote.

Four structural mismatches account for almost all of the confusion.

Per-order versus per-item versus first-item-plus-additional. Walmart WFS bills $3.45 per unit for a standard item at or under 1 lb, with no per-order component at all. ShipCalm bills $2.65 per DTC order plus $0.95 per item. Fulfyld bills $7.74 per order all-in and gives you the first five picks free, charging $0.50 per item beyond that. Those three structures respond to your items-per-order number in completely different directions.

Storage priced in three incompatible units. Amazon and Walmart bill cubic feet. Fulfyld bills per bin and per pallet position. ShipCalm bills $0.19 per cubic foot per week, plus $1.45 per SKU per week for SKU management. ShipBob publishes bin, shelf, and pallet storage as line items with no numbers attached. A cubic-foot rate and a bin rate cannot be compared until you know how your inventory physically occupies space, and the answer can swing the same 400 cubic feet by a factor of seven (worked below).

“Free software” that isn’t free. ShipBob’s public pricing page contains exactly one number: $0 for its WMS and software platform, described as completely free. Every other line on that page, including the starting pick and pack fee, is quote-gated. Software is never free; it is recovered in the handling rate. The opposite structure is equally valid and equally distorting: ShipCalm charges $49 per week for the Essentials DTC plan and $295 per week for Managed, which reads as expensive next to “free” until you compare the pick fees underneath.

Shipping markup you cannot see. Fulfyld’s $7.74 includes postage, packaging, and the label. ShipCalm’s $2.65 does not. Comparing those two numbers is not a small error, it is a category error. Reported 3PL markups on carrier rates run 5% to 20% above carrier cost or 5% to 15%, or a flat $0.50 to $1.50 per package, and a documented contract pattern is 3PLs that prohibit you from using your own carrier accounts or from seeing base rates, which makes the markup unauditable by design.

There is only one metric that survives all four mismatches: all-in cost per order for your order profile, projected over twelve months including seasonality. Everything below is how to get there.

Step 1: Write down your order profile

You cannot normalize a quote against nothing. Before you touch a rate card, fix five numbers. Every vendor should be priced against exactly these, and you should send them to every vendor so the quotes you get back are already closer to comparable.

InputWhy it decides the answer
Monthly ordersSets the volume tier, tests the monthly minimum, and dilutes fixed fees. Fulfyld’s published rates are tiered by order band (the $7.74 rate is the 501–1,000/month tier).
Items per orderThe single most under-weighted input. Determines whether a per-unit, per-order, or first-plus-additional structure wins.
SKU countDrives per-SKU fees and how much of your footprint has to sit in individually rented pick faces rather than cheap bulk. ShipCalm’s $1.45/SKU/week is invisible at 20 SKUs and material at 200.
Storage footprintAverage cubic feet on hand, plus the peak-season number. Also record whether you arrive on pallets, in cartons, or floor-loaded.
Returns rateThe most commonly omitted category on initial quotes. Record it as a percentage of orders and note the January spike.

Two secondary inputs to record while you are at it: average and peak inbound cadence (containers, pallets, or cartons per month), and your dimensional profile. Carriers bill the greater of actual and dimensional weight, with FedEx and UPS both using a divisor of 139 for US domestic parcel and USPS using 166 on Priority Mail over one cubic foot. A 3PL that boxes loosely converts your 8 oz product into a billable 2 lb parcel, which is a cost difference no rate card will show you.

Step 2: Normalize the rate cards to cost per order

Our illustrative brand for this walkthrough:

Those figures are an illustrative order profile, not a market benchmark. Every rate applied to them below comes from a published vendor page.

The four rate cards, as published

VendorHandling structureStorage structurePostage included?Returns
Amazon MCFPer order, priced by size tier and unit count. Small standard 0–4 oz Standard speed: $7.34 at 1 unit, $3.64 at 4+ unitsFBA cubic-foot storageYes, plus a 3.5% fuel and logistics surcharge on all US MCF fulfillment feesNot published in the rate card
Walmart WFSPer unit. $3.45 for standard ≤1 lb$0.75/cu ft/month Jan–SepYes$4.70–$17.55 per unit, mirroring the fulfillment tiers
FulfyldPer order all-in, $7.74 at the 501–1,000/month tier; first 5 picks free, then $0.50/itemPer bin: $2.20 small, $3.50 regular, $5.25 x-large; $28.00 per palletYes, postage plus pick/pack plus packaging plus label$3.50 first item, $0.50 each additional
ShipCalm$2.65 per DTC order plus $0.95 per item$0.19/cu ft/week plus $1.45/SKU/weekNo$4.95 per item returned

Read that table and the naive ranking is ShipCalm ($2.65) beats WFS ($3.45) beats MCF ($7.34) beats Fulfyld ($7.74). That ranking is wrong in almost every position.

Amazon MCF

MCF prices per order by size tier and unit count. Our published extract has the 1-unit and 4+-unit cells for the small standard 0–4 oz tier, but not the 2-unit and 3-unit cells, so 700 of our 2,000 monthly orders cannot be priced from public data. That gap is itself the finding. We bracket it.

LineFloorCeiling
1,200 single-item orders @ $7.34$8,808.00$8,808.00
700 two- and three-item orders (unpublished cell)@ $3.64 = $2,548.00@ $7.34 = $5,138.00
100 four-item orders @ $3.64$364.00$364.00
Fulfillment subtotal$11,720.00$14,310.00
Fuel and logistics surcharge, 3.5%$410.20$500.85
FBA storage, 400 cu ft @ $0.78$312.00$312.00
Monthly total$12,442.20$15,122.85
Cost per order$6.22$7.56

The $0.78 per cubic foot figure is Amazon’s non-peak standard-size rate confirmed effective April 1, 2024; the current 2026 table and the Oct–Dec peak table are only available inside Amazon’s login-gated or JS-rendered pricing tool, so this column cannot be projected through Q4 from public data at all. Returns are not in the MCF rate card. A 15% preferred-pricing discount on outbound fulfillment fees is available on a 6- or 12-month commitment, which would move the floor to roughly $5.31 per order but converts the arrangement into a term commitment.

The bracket width, $1.34 per order, is $37,520 across our projected 28,000-order year. That is the cost of three missing cells in a rate card.

Walmart WFS

LineMonthly
3,200 units @ $3.45$11,040.00
Storage, 400 cu ft @ $0.75 (Jan–Sep)$300.00
Returns, 160 @ $4.70 (bottom of published band)$752.00
Monthly total$12,092.00
Cost per order$6.05

WFS looks cheap and per-unit pricing at 1.6 items/order is genuinely efficient here. Two structural facts limit the comparison: WFS only fulfills Walmart marketplace orders, so it is not substitutable for a DTC 3PL, and its peak storage rate jumps to $2.25 per cubic foot for Oct–Dec inventory held over 30 days, triple the base rate.

Fulfyld

Storage is where this one gets interesting, because Fulfyld rents containers, not volume. Our 400 cubic feet can be configured three ways:

ConfigurationMathMonthly
All regular bins (18×10×11 in = 1.146 cu ft)350 bins @ $3.50$1,225.00
All pallets (48×40×60 in = 66.7 cu ft)6 pallets @ $28.00$168.00
Realistic mix: 140 bins as pick faces (160 cu ft) + 4 pallets of reserve$490.00 + $112.00$602.00

Same inventory, same warehouse, $168 to $1,225 depending only on how it is slotted. If you compare a bin rate to a cubic-foot rate without doing this step, you are guessing.

LineMonthly
2,000 orders @ $7.74 (includes postage, packaging, label)$15,480.00
Additional picks beyond the free 5 per order$0.00
Storage, realistic mix$602.00
Returns, 160 @ $3.50$560.00
Monthly total$16,642.00
Cost per order$8.32

Note what did not happen: at 1.6 items per order, Fulfyld’s additional-item fee never triggers, because the first five picks are free. Its cost is almost perfectly flat in items per order. That is a real advantage for a brand with a rising basket and a real disadvantage for a strictly single-item brand paying for headroom it never uses. The $7.74 is also the 501–1,000/month tier rate; our brand at 2,000/month would land in a lower band, and Fulfyld notes storage tiers get up to 13% cheaper at higher volume. We use the published number because it is the published number, and we ask for the 2,000/month tier as checklist question 1.

ShipCalm

ShipCalm bills weekly, which is the most common arithmetic trap in this exercise. A weekly fee is not a monthly fee times four; it is times 52/12, or 4.333. The $49/week Essentials plan is $212.33 a month, not $196.

LineReading A: pick fee on every itemReading B: pick fee on additional items only
2,000 orders @ $2.65$5,300.00$5,300.00
Per-item pick @ $0.953,200 items = $3,040.001,200 items = $1,140.00
Essentials DTC platform, $49/wk$212.33$212.33
SKU management, 140 SKUs @ $1.45/wk$879.67$879.67
Storage, 400 cu ft @ $0.19/wk$329.33$329.33
Returns, 160 @ $4.95$792.00$792.00
Monthly handling total$10,553.33$8,653.33
Cost per order$5.28$4.33

Three things to notice. The published rate card does not say whether the $0.95 per-item pick applies to all items or only to items beyond the first, and the two readings differ by $0.95 per order, or $26,600 across our projected 28,000-order year. The $1.45/SKU/week line, invisible on a quote summary, costs $879.67 a month, which is more than the platform fee and the storage combined. And this column excludes postage entirely, so it is not yet comparable to Fulfyld’s $8.32.

Do not invent a postage number. Solve for it. For ShipCalm to beat Fulfyld’s $8.32 all-in, its blended label has to come in under $3.04 per order (reading A) or $3.99 (reading B). Now you have a single, testable question to put to both vendors instead of two incomparable numbers. ShipCalm also carries a $6,000 quarterly minimum billed as pay-the-difference, which our profile clears comfortably but a 400-order/month brand would not.

Normalized ranking

VendorAll-in cost/orderScopeComparability
ShipCalm$4.33–$5.28 plus postageHandling, storage, SKU fees, returns, platformIncomplete until postage is quoted
Walmart WFS$6.05Fulfillment, storage, returns, shippingWalmart marketplace orders only
Amazon MCF$6.22–$7.56Fulfillment, storage, shipping, fuel surchargeReturns unpriced; peak storage not public
Fulfyld$8.32Everything including postage and packagingComplete; tier rate is for 501–1,000/mo

Naive ranking said ShipCalm by a mile. Normalized, ShipCalm only wins if its blended label lands under about $3 to $4, which is achievable on a sub-4 oz USPS Ground Advantage parcel and not achievable on much else. That is a specific, answerable question. “Which quote is cheaper” was not.

Stop normalizing quotes by hand. The 3PL Quote Normalizer Kit takes your order profile plus up to 5 competing rate cards and returns true all-in cost per order, a 12-month projection, and breakeven volumes, plus the RFP template and 40-point contract red-flag checklist. Get the Kit →

Why the per-order sticker price misleads

The headline number on a quote is almost always the first-item pick fee, and it is the number least sensitive to your actual business.

Industry benchmark data puts the B2C first item at $2–$3 typical with a survey average of $3.20, and the additional item at $0.30–$0.75 with a survey average of $0.48. A widely cited 2026 figure is $2.75 first item, $0.50 each additional. Shipfusion’s published case-study examples show $1.36–$1.52 for the first pick and $0.23–$0.28 for consecutive picks. Two vendors quoting $2.75 and $3.20 first-item look 16% apart. At 1.6 items per order, with additional-item fees of $0.75 and $0.30, they are $3.20 versus $3.38, or 5.6% apart in the opposite direction of what the headline implied. At 3.5 items per order the gap reverses again and widens to 17%, with the vendor whose headline was $0.45 cheaper now costing more.

Here is the general rule. Effective pick cost per order is first + (items_per_order − 1) × additional. The headline number only tells you the whole story at exactly 1.0 items per order, and almost nobody is there. This is why items per order belongs in the profile before you read a single quote, and why sales quotes usually lead with the first-item price only, quoting the additional-item fee, the B2B/pallet rate, and the multi-box split-shipment surcharge separately or not at all.

The same distortion runs the other way with free-pick allowances. Fulfyld’s five free picks make its per-order rate completely insensitive to basket size below six items, which is invisible if you compare headline rates. ShipCalm’s flat $0.95 per item makes its cost fully linear in basket size. Two brands with identical order counts and different baskets should rank these two vendors differently, and will, if they normalize.

For depth on where pick fees actually sit across published cards, see our 3PL pick fee benchmarks.

Step 3: Project twelve months, not one

A single normalized month is still the wrong answer, because fulfillment cost per order is not flat across the year. Peak brings more orders, more inventory on hand, higher storage rates, carrier demand surcharges, and a January returns wave.

Modeling our brand at 2,000 orders per month January through September, then 2,800 in October, 4,000 in November, and 3,200 in December (28,000 orders for the year), with storage rising to 700 cubic feet from September and returns in January absorbing 8% of December’s orders on top of 8% of January’s:

MonthOrdersCu ftFulfyldWalmart WFSShipCalm (handling only)
Jan (returns wave)2,000400$17,538$13,295$9,921
Feb–Aug (each)2,000400$16,642$12,092$8,653
Sep2,000700$16,782$12,317$8,900
Oct2,800700$23,198$18,084$11,793
Nov4,000700$32,822$25,159$16,132
Dec3,200450$26,294$19,880$13,034
12-month total28,000$233,128$173,379$120,353
Blended cost/order$8.33$6.19$4.30

Two things this table shows that a single month cannot.

Multiplying one month by twelve understates the year. Taking the February baseline times 12 gives $199,704 for Fulfyld against an actual $233,128, a 16.7% understatement. For WFS the gap is 19.5%, driven by the tripled peak storage rate. For ShipCalm it is 15.9%. The gaps differ by vendor, which means the flat-month shortcut does not just understate cost, it reorders the ranking.

Per-order cost moves in opposite directions during peak. Fulfyld’s November cost per order drops slightly to $8.21 as fixed storage dilutes across more orders. ShipCalm’s drops to $4.03 for the same reason plus its weekly fixed fees. WFS’s rises to $6.29 because its storage rate tripled. Whether peak helps or hurts you is a function of the vendor’s structure, not of your volume.

The surcharge line that isn’t in the table. FedEx’s published demand surcharges for September 28, 2026 through January 17, 2027 include $2.55–$4.05 per package on Ground Economy, $0.50–$0.80 on Residential Ground, and $8.80–$11.85 for Additional Handling, with higher tiers in the November 23–December 27 window. If Fulfyld passes the low end of the Ground Economy band straight through on our 10,000 Q4 orders, that is $25,500, which moves its blended annual cost from $8.33 to $9.24 per order. Whether that surcharge is absorbed or passed through is a $0.91-per-order question and is not answerable from any published rate card. It is checklist question 8.

Fuel behaves the same way. FedEx’s Ground fuel surcharge is indexed weekly to on-highway diesel and sat at 26.25% for August 3–9, 2026. Amazon added a temporary 3.5% fuel surcharge on FBA fulfillment fees, roughly $0.17 per unit, effective April 17, 2026. Any 12-month projection that omits a fuel line is a projection of a year that will not happen.

The line items most often missing from a quote

These are the categories that reliably do not appear on the first rate card you receive. One aggregator case study found a quoted $2.75/order rate represented only about 16% of the actual all-in invoice once account management, tech fees, and minimum shortfalls were added, with the average spread between quoted and actual all-in running 60–120%. Ask for all of them in writing.

CategoryWhat’s usually omittedPublished benchmark
Onboarding / setupIntroduced in the MSA appendix, not the rate card; sometimes “waived with a commitment,” which is an exit penalty in disguise$250–$1,000+, survey avg ~$333–$425, charged by ~51% of providers; integration $0–$500 (Fulfill.com)
ReceivingFloor-loaded container surcharge, inspection beyond a basic count, mandatory relabeling, put-away as a separate linePer pallet $5–$15 (avg $10.52); per hour $30–$60 (avg $39.88); container unload $250–$600 (avg $500) (Fulfill.com)
Aged / long-term storageThe days-idle threshold and the multiplier, both triggered automatically by the WMS1.5x–3x standard after 30/60/90 days idle (Red Stag); now charged by 48.6% of warehouses, up from 23.3% (Fulfill.com)
Peak-season surchargesStorage and handling markups distinct from carrier surcharges10–30% Q4 markup (GoBolt)
Additional-item and multi-boxThe additional-item pick fee, and the second full pick-pack charge when one order splits across two locations or cartonsAdditional item avg $0.48 (Fulfill.com); multi-box $3–$8 per extra box (GoBolt)
Packaging / dunnageWhether materials are in the handling fee or billed cost-plusCost-plus 20–40% markup, or flat $0.50–$2.00/order (GoBolt)
Shipping markupWhether markup applies before or after the 3PL’s own carrier discount; whether you can see base rates at all5–20% above carrier cost (Red Stag)
Returns / RMAThe single most under-quoted category; often on “a separate rate card subject to change”$1–$7 per return, survey avg $4.06 (Fulfill.com); restock $0.50–$1.50/unit, return label $3–$8 (GoBolt)
Value-added services“Billed at current labor rates” with no defined per-unit price (ShipDudes)Kitting $1.50–$3.50 simple, $3.50–$8.00 complex; labor $35–$60/hr (SmartSMSSolutions, Fulfill.com)
Admin and minimumsAccount management, platform fee, EDI/API per-order fee, monthly minimum shortfallAccount mgmt avg $102.88/mo, charged by 35%; monthly minimum survey avg $517/mo, up 53% from $337.50 in 2024 (Fulfill.com); EDI/API $0.05–$0.15/order (GoBolt)
Exit / offboardingNever on the rate card; lives in the MSA termination sectionClosure fee $500–$2,000, often “buried in appendices”; early termination 1–3 months of minimum spend (Simple Distribution)

Receiving is worth a closer look because it is the one category where published numbers are unusually available and unusually far apart:

VendorPublished inbound rates
ShipCalm$39.50 per ASN shipment; $12.45 per single-SKU pallet; $2.95 per mixed carton; $795 per 40’ container; $495 per 20’ floor-loaded; $150 penalty for delivery without ASN; $250 without appointment
Flexport$650 floor-loaded 40’ container; $325 floor-loaded 20’; $13 per palletized LTL pallet; $1.50 per carton
MyFBAPrep$450 palletized container unload; $1,000 floor-loaded
Simple Global$350 per 20’ container; $550 per 40’
FulfyldFirst 2 hours of onboarding receiving free, then $40/hour
ShipBobNot published

A brand taking one floor-loaded 40’ container a month pays $650 at Flexport and $1,000 at MyFBAPrep for the identical operation, a $4,200 annual difference on a line most quotes never mention. Full category-by-category detail is in our 3PL hidden fees guide and the fee benchmark dataset.

One more reason to insist on the full list: quote-gating is the industry norm, not an exception. Across our dataset, Cahoot states outright that “you won’t see a rate card”, a2b Fulfillment says the same, and ShipMonk, ShipNetwork, Atomix, Red Stag, and ShipBob all publish fee categories with no dollar amounts. That is not a reason to skip normalization. It is the reason normalization has to happen inside your own spreadsheet, from answers you extract, rather than off the page.

The 10 questions to send every vendor before you compare

Send these verbatim, to every vendor, in writing, before any of them presents. The answers are your normalization inputs.

  1. Give me the rate for my volume band, not a sample tier. Here is my order profile: [orders/mo, items/order, SKUs, cu ft, returns %]. Quote against it.
  2. Break out first-item and additional-item pick fees separately, and state exactly which items each applies to. If picks are included up to a threshold, state the threshold.
  3. Give me the complete rate grid, not a starting price. Every size tier and every unit-count column you bill from. Blank cells are a disqualifier.
  4. Is the shipping label included in the per-order fee? If yes, which carrier and service. If no, what is my blended label cost at my dimensional profile, and what markup applies?
  5. Do I see your base carrier rates, and can I use my own carrier account? State the markup as a percentage or a per-package dollar amount, and whether it applies before or after your negotiated discount.
  6. Quote storage in the unit you bill and in cubic feet. If you bill by bin or pallet, tell me how many of each my 400 cu ft and 140 SKUs will occupy in your slotting, and quote the peak-season rate separately.
  7. What is the aged-inventory threshold and the multiplier? Days idle, and the rate that applies after it.
  8. Which surcharges do you absorb and which do you pass through, and with what notice? Name fuel, carrier peak/demand, residential, DAS, and address correction specifically. ShipBob’s terms, for example, allow 15 days’ notice on carrier surcharge pass-throughs versus 30 for general fee changes.
  9. Send the returns rate card with the main quote. Per-return processing, restock, inspection, disposal, and label generation, and confirm whether it is subject to separate change.
  10. List every recurring and one-time fee not in the per-order rate. Onboarding, integration, platform/WMS, account management, EDI/API per-order, monthly or quarterly minimum and the shortfall mechanism, and every exit and data-export charge.

Add an eleventh if you are switching rather than starting: ask what the exit looks like on paper. Beardbrand, a DTC grooming brand, moved 3PLs expecting per-order shipping to fall from $13 to about $10; it rose to $14.50 instead, on undisclosed fees and oversized packaging, and the new 3PL “altered quoted rates without notification”, caught only because the ops manager had kept a printed copy of the original quote. That is a single named case, not a statistic, but the lesson generalizes: the quote you normalize is only worth what the contract makes enforceable. Our 3PL contract red flags guide covers the clauses that matter and what it costs to switch covers the exit math.

What to do next

  1. Write the five-number order profile down before you open another quote. Monthly orders, items per order, SKU count, average and peak cubic feet, returns rate.
  2. Send the 10 questions to every vendor on the same day, in writing. Rank nobody until all answers are in. A vendor who will not answer question 3 has told you something useful.
  3. Build one spreadsheet with one row per fee category and one column per vendor. Convert every rate into your profile’s monthly dollars. Weekly fees are times 4.333, not times 4.
  4. Run the twelve months, not the month. Include your peak volume curve, peak storage rates, the January returns wave, and a fuel and demand-surcharge line.
  5. Where a cell is unknowable, solve for the breakeven instead of guessing. “This vendor wins if its blended label is under $3.04” is a decision you can act on. An invented postage number is not.

Our full calculation rules, source-grading standards, and how we handle quote-gated vendors are documented in our methodology.

Sources


Related

Found an error or a rate that has changed? Tell us at data@ratecardlab.com — we log every fix on the corrections page.