3PL Receiving Fees: Per Pallet, Per Container

By Wayan Sunnasy Published 2026-08-17 Data last verified 2026-08-04 8 sources How we verify →

Your container lands in three weeks, receiving is the line nobody walked you through, and the three cards on your desk do not price the same thing. One quotes a flat fee for a 40-foot box. One quotes per pallet. One quotes the shape of the load and never mentions its size. This is every published receiving rate we could source, with a column for the variable each vendor leaves out, because that column is what decides the invoice.

What receiving actually charges for

Receiving is quoted last and invoiced first. It is also the fee category where the billing base is set by physical facts you do not control: whether your supplier palletized the load, whether the freight forwarder filed an ASN, whether the driver booked a dock appointment.

Across the receiving rows in our dataset the published units are: per container, per trailer, per pallet, per carton, per shipment, per delivery, per hour and per SKU. Every one of those is a different question about the same inbound shipment, and a quote that answers one of them tells you nothing about the others. A vendor quoting $13 per pallet and a vendor quoting $650 per container have not given you two prices for the same event.

Before the numbers, the shape of the evidence. Every receiving dollar figure on this page comes off one of these cards: Flexport, Fulfyld, MyFBAPrep, ShipCalm and Simple Global. That is the whole of it. Eleven of the 23 companies we track publish no dollar figure for receiving at all. Ten of those publish no dollar figure anywhere in our dataset, on the pages we read on the dates listed. The other is ShipBob, which lists an inbound receiving fee as a category on its pricing page and attaches no amount to it; we record that as quote-gated, unit per shipment, read 2026-08-04.

A third group is different again, and worth separating rather than lumping in as silence. Amazon FBA, Amazon MCF, Walmart WFS, Fulfillrite, Launch Fulfillment, Shipfusion and Simpl Fulfillment have no receiving row in our dataset at all. For some of them that is a fact about the vendor: Simpl Fulfillment states on its pricing page that it charges no setup, onboarding or receiving fees, and Amazon FBA’s inbound charges sit on a separate inbound placement line in our data, priced per unit rather than per container (below). For others it means only that we have not sourced one. “No row” and “we checked and they publish nothing” are not the same claim, and the second is the only one we make out loud. Our methodology sets out how the two are recorded.

Every published container rate, and the variable each card leaves out

Flexport, ShipCalm, Simple Global and MyFBAPrep each publish a price for unloading a container. No two of them price on the same pair of variables.

VendorFee, as the card labels itAmount (USD)UnitVariables the card statesNot statedRead
Flexportfloor-loaded unloading 40’ container650per containersize (40’), shape (floor-loaded)2026-08-04, re-read in browser 2026-08-12
Flexportfloor-loaded unloading 20’ container325per containersize (20’), shape (floor-loaded)2026-08-04, re-read in browser 2026-08-12
ShipCalm40’ container flat fee795per containersize (40’), flatshape2026-08-04
ShipCalm20’ floor-loaded container flat fee495per containersize (20’), shape (floor-loaded), flat2026-08-04
Simple Global20’ container receiving350per containersize (20’), flatshape2026-08-04
Simple Global40’ container receiving550per containersize (40’), flatshape2026-08-04
MyFBAPrepcontainer unload - palletized450per containershape (palletized)size2026-08-04
MyFBAPrepcontainer unload - floor loaded1,000per containershape (floor-loaded)size2026-08-04
Flexportunsafe trailer unloading500per trailertrailer arriving in a condition requiring non-standard unloadingcontainer size or shape; the unit is a trailer, not a container2026-08-12
ShipBobinbound receiving feeNot publishedper shipmentthat the fee existsthe amount2026-08-04

Read the two variable columns before the dollar column. Flexport states both variables on both rows: size and shape. ShipCalm states size on its 40-foot row and both on its 20-foot row, so its $795 is a 40-foot flat fee and the page does not say which load shape it covers. Simple Global states size and calls the fee flat, with no shape on either row. MyFBAPrep states shape on both rows and no container size appears anywhere on the page we read.

That gives the honest version of the spread: on a container the vendor itself calls 40-foot, the published range is $550 to $795 per container — Simple Global at $550, Flexport at $650 for a floor-loaded 40-foot, ShipCalm at $795 flat. The full span of published per-container amounts runs from $325 to $1,000, but the $1,000 is MyFBAPrep’s floor-loaded rate and MyFBAPrep does not publish a size. Getting from $795 to $1,000 requires assuming a variable the vendor has not stated, and we decline to assume it. Every generic “container unloading costs $X to $Y” range you will find on this query names neither a vendor nor a variable set, which is precisely why none of them can be checked.

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 →

Palletized versus floor-loaded, from the one vendor that prices both

MyFBAPrep is the only company in our dataset whose card prices both load shapes: $450 per container palletized, $1,000 per container floor-loaded, both read 2026-08-04. That is 2.2x for the same box (1,000 ÷ 450 = 2.22), and the multiplier is decided at your supplier’s loading dock, weeks before anyone at the 3PL touches it.

Nobody else publishes the pair. Flexport publishes a 40-foot and a 20-foot rate, both floor-loaded, so there is no published palletized-container rate to compare against. ShipCalm labels only its 20-foot row floor-loaded. Simple Global’s rows say flat fee and nothing about shape.

What Flexport and ShipCalm publish instead is a per-pallet line, which changes the unit and therefore the question. Two illustrative calculations, using only published figures, on a hypothetical 20-pallet inbound:

  • Flexport’s palletized LTL receiving is $13 per pallet. Twenty pallets is $260, against $650 per container for a floor-loaded 40-foot. Its $650 divided by its $13 is 50 pallets, so the container fee only beats the pallet fee above 50 pallets.
  • ShipCalm’s single-SKU pallet receiving is $12.45 per pallet. Twenty pallets is $249, against its $795 40-foot flat fee. Those two cross at about 64 pallets ($795 ÷ $12.45 = 63.9).

Both calculations are ours, not the vendors’. Neither card states whether a palletized container is billed at the container rate or at the pallet rate, and Flexport’s per-pallet row is labeled LTL receiving into reserve storage, which may mean it never applies to a container at all. The arithmetic is the reason to ask the question in writing, not the answer to it.

Pallets and cartons: a pallet is not one unit

Inside a single vendor, “per pallet” is not one price.

VendorFee, as the card labels itAmount (USD)UnitConditions on the rowRead
ShipCalmper single-SKU pallet receiving12.45per palletsingle-SKU pallet2026-08-04
Flexportpalletized LTL receiving (B2B)13per palletreserve storage inbound2026-08-04
Flexportsupplied pallet - grade B16per palletmax pallet height 60 in; grade A is $252026-08-12
Flexportgrade A pallet receiving (B2B)25per palletB2B2026-08-04
Flexportcarton receiving (B2B)1.50per cartonreserve storage inbound2026-08-04
ShipCalmper carton (mixed/parcel) receiving2.95per cartonmixed or parcel cartons2026-08-04
FlexportB2B oversize inbound receiving5per cartoncartons with longest side over 48 in or weight over 50 lb2026-08-12
FlexportSKU dimension measurement2per SKUcovers any SKU measurement performed by the vendor2026-08-12

Flexport’s card carries $13, $16 and $25 per pallet on separate receiving lines. A grade A pallet is nearly double a palletized LTL pallet ($25 ÷ $13 = 1.9x, our arithmetic), and the grade B row adds a physical condition — maximum pallet height 60 inches — that your supplier, not you, will satisfy or miss. That is a 1.9x span inside one vendor before you have compared it to anyone else.

The carton lines move the same way. ShipCalm’s mixed or parcel carton is $2.95 per carton; Flexport’s B2B carton receiving into reserve storage is $1.50 per carton. Those are not the same event, and the gap between them is not a discount. Flexport’s oversize surcharge adds $5 per carton on anything with a side over 48 inches or over 50 lb, which is a spec sheet question, not a negotiation.

One more piece of arithmetic worth having before you sign. At ShipCalm’s $2.95 per carton, its own $795 40-foot flat fee is the cheaper treatment above roughly 270 cartons ($795 ÷ $2.95 = 269.5) and the more expensive one below it. Whether a container gets billed flat or per carton is not stated on the page, so the number to ask for is not the rate — it is the rule that decides which rate applies.

And onboarding a catalog has its own line: at $2 per SKU for dimension measurement, the 140-SKU profile we use across our comparison method is $280, our arithmetic. The row reads per SKU and says the fee covers any SKU measurement the vendor performs; it does not say whether that is once per SKU at onboarding or once per measurement, so ask. Small either way, and absent from every quote we have seen.

The penalties only one vendor publishes

ShipCalm publishes the inbound compliance lines below, all read 2026-08-04. Note the units: some are billed per delivery, others per shipment, as the card words it.

Fee, as the card labels itAmount (USD)Unit
penalty - delivery without ASN150per delivery
penalty - delivery without appointment250per delivery
per-shipment receiving (ASN)39.50per shipment
special handling ASN295per shipment

The $250 appointment penalty is 31% of ShipCalm’s own $795 40-foot container fee ($250 ÷ $795, our arithmetic). Both penalties together are $400, more than half that container fee, and neither is triggered by anything you do — your freight forwarder files the ASN and books the dock. Nor does the page state whether the $39.50 per shipment receiving fee stacks on top of the container flat fee or is replaced by it.

No other company in our dataset publishes an ASN or appointment penalty. That is a statement about publication, not about practice: a warehouse that charges nothing for a missed appointment would be unusual, and the companies that publish no receiving figure at all are not evidence either way. This is the same failure mode we catalog in the hidden fees guide — the fees that cannot be shopped are the ones that never make it onto a quote.

The hourly rates, which cannot be compared to any of the above

Some receiving rows are labor rates, and they do not convert into anything above:

  • Fulfyld: $40 per hour, with the first two hours of onboarding receiving free. Read 2026-08-04.
  • Flexport inventory inspection: $48 per hour. Read 2026-08-12.
  • Flexport rush receive / shipping: $48 per hour, minimum 4 hours — so $192 before anything has been received. Read 2026-08-12.

We record a warning on both Flexport rows in the dataset itself: a labor rate is not comparable to a per-order or per-unit fee without an hours assumption, and must not be averaged into a per-order comparison. An hours assumption is a guess about how long your load takes to handle, and a guess is not a benchmark. Compare hourly rates against each other, and against your own estimate of hours; never against a per-container fee.

One receiving-adjacent line belongs here because it is billed by time in a different sense. Flexport charges $20 per pallet per day for pallet staging, after three business days, when inbound pallets cannot be put away (read 2026-08-12; we file it under storage, not receiving). Twenty pallets stuck for two days past the grace period is $800 by that rate — our arithmetic, illustrative — and the trigger is the warehouse’s own putaway backlog.

What Amazon publishes for inbound is priced per unit

For contrast, and dated deliberately: Amazon’s inbound placement service fee against its March 2024 baseline averaged $0.27 per unit for standard-size and $1.58 per unit for large bulky on non-Amazon-optimized inbound shipments, and $0 per unit where the seller accepts Amazon’s suggested split-shipment placement. Those are official Amazon figures reproduced in the seller forums, read 2026-08-04, and they are a 2024 baseline — not a current 2026 rate. The structural point survives the date: what Amazon publishes for inbound is billed per unit and per placement decision, not per container and not per pallet, so a floor-loaded discount is not a thing you can win or lose on it. We hold no container, trailer or pallet receiving row for Amazon FBA, Amazon MCF or Walmart WFS. That is an absence in our dataset, not a finding that none of the three ever bills for unloading one.

One correction we made, and what it did not change

Two of the Flexport container rows in rates-platforms.csv were filed under our removal service line until our own audit moved them to receiving on 2026-08-12, on the ground that unloading an inbound container is receiving. Our mid-market file had them under receiving all along. The dollar figures, units and sources did not change, so this does not appear on our corrections page — it was a classification error in our own taxonomy, not a wrong number on the site. We mention it because it is the kind of thing that quietly understates a count: had we filtered this category on service_line alone, Flexport’s container rows would have dropped out of it entirely. Both Flexport container records carry one shared fee identifier and are counted once. The full set is browsable at /data/3pl-fee-benchmarks/#receiving.

What to ask before your first container

  1. Ask which unit applies to a container, in writing. Per container, per pallet or per carton — and the rule that decides. ShipCalm’s flat fee and its per-carton rate cross at about 270 cartons; nobody publishes which side of that line your shipment lands on.
  2. Get both load shapes priced, even if you only ship one. MyFBAPrep’s published 2.2x is the measured size of that risk. Your supplier changes loading practice without telling you.
  3. Ask what a pallet is. Flexport publishes $13, $16 and $25 per pallet on separate receiving lines, with a 60-inch height condition on one of them. “Per pallet, $X” is not an answer.
  4. Ask for the ASN and appointment penalties by name. Only ShipCalm publishes them, so on every other card you have to ask. They are your forwarder’s mistakes, billed to you.
  5. Get the hourly rate, the minimum billed hours, and what starts the clock. A $48 rate with a 4-hour minimum is a $192 event. Then read the contract red flags list before signing, and if you are moving from an incumbent, price the inbound leg with the rest of the switching cost.

Limitations, stated

This is 23 fulfillment operations, not the market, and three of them are marketplace programs rather than 3PLs. It is US-focused. The dataset was collected 2026-08-04; the Flexport rows marked 2026-08-12 were re-read directly in a browser on that date, because Flexport’s pricing page needs one, while the other sources here can be re-fetched plainly. Every other row keeps its 2026-08-04 read date and has not been individually re-read since.

We hold no container rate for any company outside the table above, and no per-pallet or per-carton receiving rate outside Flexport and ShipCalm. Both of those are limits on what we have sourced, not findings about the vendors. Vendors change prices without notice. If a figure here no longer matches its source, email data@ratecardlab.com and we will publish the correction.

Every figure below is copied from a vendor’s own published page, with the unit as the vendor wrote it and the date we read it. Where a card leaves a variable unstated we say which variable, rather than filling it in. Where we do arithmetic on published figures, the sentence says so.

Sources

Who publishes receiving rates

5 of the 7 providers whose rate cards we hold publish receiving rates outright. Each page below lists every fee that provider publishes, with the source URL and the date we read it.

  • Flexport 12 published receiving rates · 75 fees in total
  • ShipCalm 8 published receiving rates · 35 fees in total
  • MyFBAPrep 2 published receiving rates · 8 fees in total
  • Simple Global 2 published receiving rates · 8 fees in total
  • Fulfyld 1 published receiving rate · 12 fees in total

All published fees by vendor · What a 3PL costs in 2026

When a figure on this page changes

We re-check these rates against the vendor's own page and publish every correction. Leave an address and you get an email when a number in this guide moves or a company is added — nothing else, and nothing on a schedule. To come off, email data@ratecardlab.com and we delete the record.