3PL ASN Penalty and No-Appointment Fees
You signed on a per-order rate and a storage rate. The first invoice carries a line you have never seen a price for, and it was not triggered by your volume — it was triggered by your supplier’s paperwork: no ASN on the delivery, no dock appointment booked, the wrong label on the carton, a trailer nobody could safely unload. This is every published price for that class of failure we could find, and the shortest true thing to say about it is that it was published the whole time.
Our dataset is 241 sourced fee rows across 23 fulfillment operations. ShipCalm, Walmart WFS and
Flexport publish a dollar figure for an inbound compliance failure. No two of them price the same
failure, and the billing units barely line up: per unit is the only basis shared by more than one
of them. That is most of the reason these fees never appear side by side on anything.
For the contract-side framing — why every published penalty prices your failure and none prices the vendor’s — see hidden fees in a 3PL SLA.
What inbound compliance penalties should I watch out for?
The ones anybody publishes a price for are a missing ASN, a missing dock appointment, a missing or incorrect label, a missing or incorrect poly bag, a packaging-spec failure, a trailer that cannot be unloaded normally, an oversize inbound carton, and inbound pallets that sit longer than the putaway window. Every published amount for those is in the table below, with the unit as the vendor wrote it.
What makes them different from the rest of a rate card is the trigger. A pick fee goes up when you sell more. These go up when someone two links up your supply chain — a factory, a freight forwarder, a driver — does something in a way the warehouse did not expect. You are billed for it and you were not in the room.
Every published inbound-compliance penalty in our dataset
| Vendor | Fee, as the card labels it | Amount (USD) | Unit | Trigger, as the card states it | Read |
|---|---|---|---|---|---|
| ShipCalm | penalty - delivery without ASN | 150 | per delivery | nothing beyond the fee name | 2026-08-04 |
| ShipCalm | penalty - delivery without appointment | 250 | per delivery | nothing beyond the fee name | 2026-08-04 |
| Walmart WFS | missing/incorrect label | 0.65 | per unit | unplanned prep service fee | 2026-08-04 |
| Walmart WFS | missing/incorrect poly bag | 0.80 | per unit | unplanned prep service fee | 2026-08-04 |
| Flexport | SIOC non-compliance surcharge | 6.00 | per unit | ship-in-own-container non-compliance | 2026-08-04 |
| Flexport | B2B oversize inbound receiving | 5 | per carton | cartons with longest side over 48 in or weight over 50 lb | 2026-08-12 |
| Flexport | unsafe trailer unloading | 500 | per trailer | trailer arriving in a condition requiring non-standard unloading | 2026-08-12 |
| Flexport | pallet staging | 20 | per pallet per day | charged after 3 business days, when inbound pallets cannot be put away | 2026-08-12 |
Read the unit column before the amount column. The units printed there are per delivery, per unit, per trailer, per carton and per pallet per day — one idea, and the only basis shared by
more than one vendor is per unit. ShipCalm charges a flat amount per delivery, so the penalty is
the same whether the truck holds 40 units or 40,000. Walmart WFS charges per unit, so the penalty scales with the
shipment. Flexport charges per unit for one failure, per carton for another, per trailer for a third
and per pallet per day for a fourth.
No two vendors price the same failure either. ShipCalm prices documentation and scheduling. Walmart WFS prices the physical prep of the unit. Flexport prices the packaging spec, the trailer, the carton dimensions and the dwell. No failure in the table is priced by more than one vendor, which means there is no published figure in our dataset you could use to benchmark any single one of these against a competitor. That absence is the finding.
One bad inbound, $150 or $6,500, depending on the unit
Take one inbound of 10,000 units that arrives wrong.
- On ShipCalm’s card, a delivery with no ASN is $150 per delivery. Across 10,000 units that is 1.5 cents a unit ($150 ÷ 10,000, our arithmetic).
- On Walmart WFS’s card, 10,000 units with a missing or incorrect label at $0.65 per unit is $6,500.
That is 43x between the two totals ($6,500 ÷ $150 = 43.3, our arithmetic on two published rows). These are not the same failure and they are not competitors for the same shipment — Walmart WFS is a marketplace program and ShipCalm is a 3PL — but the shape comparison is the useful part, and it is the part a quote never shows you. On a flat per-delivery penalty, volume protects you. On a per-unit penalty, volume is the multiplier. Ask which shape you are signing before you ask what the rate is.
For scale inside Walmart’s own card: the missing poly bag fee of $0.80 per unit is 23% of the $3.45 per unit WFS charges to fulfill a standard item of 1 lb or under ($0.80 ÷ $3.45 = 0.232, our arithmetic, both rows read 2026-08-04). A packaging omission at your supplier’s factory adds roughly a quarter to the cost of moving the lightest item Walmart prices.
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 →
Not hidden. Published, and unread.
“Hidden fees” is the phrase everybody searches, and on this category it is the wrong word. Every amount in the table above sat on a public vendor page on the date in the last column. Nothing was concealed from anyone. What is true is that these lines are effectively unread, and there is a structural reason for it rather than a sinister one.
A quote is a sales document about the fees a buyer will compare. Pick, pack and storage are comparable across vendors, so they lead. A per-delivery ASN penalty is not comparable against anything, because the vendor across the street either does not publish one or prices it per unit — so it goes in an appendix, or nowhere. The fee is not hidden; it is unshoppable, and unshoppable fees drift out of quotes on their own. We catalog the same mechanic across every category in the hidden fees guide.
The practical consequence is that you cannot solve this by reading harder. You solve it by asking for the penalty schedule by name, in writing, before you sign — because on most of the cards we read there was no penalty schedule to find.
The three-business-day clock
Flexport’s pallet staging row is the one that turns a warehouse’s internal problem into your line item. The fee is $20 per pallet per day, and the row’s own condition reads: charged after 3 business days, when inbound pallets cannot be put away (read 2026-08-12).
Two things about that. The trigger is putaway, not receipt — the clock starts when the pallets are on the floor and stops when they are racked, and the thing that decides how long that takes is the warehouse’s own labor schedule, not yours. And the daily rate is large next to Flexport’s published monthly storage:
| Flexport row | Amount (USD) | Unit | Read |
|---|---|---|---|
| pallet staging | 20 | per pallet per day | 2026-08-12 |
| B2B pallet storage months 2-12 (LAX) | 27.50 | per pallet per month | 2026-08-12 |
| B2B pallet storage months 13+ | 60 | per pallet per month | 2026-08-12 |
Three chargeable days — three days past the three-business-day window, not three days on the floor — is $60 per pallet, exactly what Flexport charges to store that pallet for a full month from month 13 onward, which its card puts at $60 at LAX, EWR and DFW alike ($60 ÷ $20 = 3 days, our arithmetic on two published rows). Against its months 2–12 LAX rate of $27.50 (the same tier is recorded at $25 for EWR and DFW), staging passes a whole month’s storage in under a day and a half of chargeable time ($27.50 ÷ $20 = 1.375 days). An illustrative 20-pallet inbound stuck five days past the grace window is $2,000 (20 × $20 × 5, our arithmetic).
The card does not state what counts as a business day for this purpose, whether the three-day window resets per pallet or per shipment, or what happens if the delay is the warehouse’s. Those are three questions with dollar consequences and no published answer, which makes them RFP questions.
The $400 delivery, and what it is $400 against
ShipCalm publishes two separate rows for two separate failures: $150 per delivery for a delivery without an ASN, and $250 per delivery for a delivery without an appointment. A single inbound that misses both is $400 ($150 + $250, our arithmetic on two published rows). Neither row states whether both can apply to one delivery, so treat $400 as the arithmetic ceiling of the two published figures rather than a rate ShipCalm quotes.
What makes the number land is what it sits beside on the same card:
| ShipCalm row | Amount (USD) | Unit | Read |
|---|---|---|---|
| penalty - delivery without ASN | 150 | per delivery | 2026-08-04 |
| penalty - delivery without appointment | 250 | per delivery | 2026-08-04 |
| per-shipment receiving (ASN) | 39.50 | per shipment | 2026-08-04 |
| special handling ASN | 295 | per shipment | 2026-08-04 |
| 40’ container flat fee | 795 | per container | 2026-08-04 |
| 20’ floor-loaded container flat fee | 495 | per container | 2026-08-04 |
The two penalties together are 10.1x the $39.50 ShipCalm charges to receive the shipment properly ($400 ÷ $39.50 = 10.13, our arithmetic), 50% of its own 40-foot container flat fee ($400 ÷ $795 = 0.503) and 81% of its 20-foot floor-loaded flat fee ($400 ÷ $495 = 0.808). The work of receiving the freight is the cheap part of the transaction. The paperwork is the expensive part.
Note also the unit change inside one vendor: the penalties are billed per delivery and the
receiving fees per shipment. The card does not define either term or say whether one delivery can
contain several shipments. If your forwarder consolidates, that distinction is money. The rest of
ShipCalm’s receiving card, and how it compares to Flexport, MyFBAPrep and Simple Global, is in our
receiving and container unloading guide.
The specification failures: SIOC, oversize cartons, unsafe trailers
Flexport’s remaining rows are priced against a spec your supplier either meets or does not.
SIOC non-compliance is $6.00 per unit (ship-in-own-container non-compliance, read 2026-08-04). Worth noting precisely what that figure is, because it is unusual. Flexport’s domestic outbound fulfillment fee is recorded in our dataset as quote-gated: the page lists it and attaches no amount. So the $6.00 non-compliance surcharge is a published per-unit figure on a card whose per-unit fulfillment fee is not published, and the card does not state how the two combine. You can price the mistake without being able to price the baseline it sits against. On an illustrative 500-unit SKU that fails the spec, that is $3,000 (our arithmetic).
An oversize inbound carton is $5 per carton on the B2B side, for cartons with a longest side over
48 inches or a weight over 50 lb (read 2026-08-12). Flexport’s ordinary B2B carton receiving is
$1.50 per carton on a row whose stated condition is reserve storage inbound, read 2026-08-04.
If the surcharge adds to that base rate — the row is filed as a surcharge and the page does not state
whether it replaces the base, and the two rows do not carry the same condition — an oversize carton
is $6.50, which is 4.3x the standard carton ($6.50 ÷ $1.50, our arithmetic). Ask which it is. Carton
dimensions are set at your supplier’s packing line.
An unsafe trailer is $500 per trailer — a trailer arriving in a condition requiring non-standard unloading (read 2026-08-12). Flexport’s published price to unload a floor-loaded 40-foot container is $650 per container, also read 2026-08-12, so the penalty is 77% of the unloading fee itself ($500 ÷ $650, our arithmetic). The units differ — one is a trailer, the other a container — and the card does not say whether the $500 stacks on the unloading fee or replaces it.
The paperwork fees that are not penalties
More rows belong next to the penalties, because they are billed on the same inputs — documentation and physical spec — even though no card calls them a penalty.
| Vendor | Fee, as the card labels it | Amount (USD) | Unit | Conditions on the row | Read |
|---|---|---|---|---|---|
| ShipCalm | per-shipment receiving (ASN) | 39.50 | per shipment | none stated | 2026-08-04 |
| ShipCalm | special handling ASN | 295 | per shipment | none stated | 2026-08-04 |
| Flexport | supplied pallet - grade B | 16 | per pallet | max pallet height 60 in; grade A is $25 | 2026-08-12 |
| Flexport | grade A pallet receiving (B2B) | 25 | per pallet | none stated | 2026-08-04 |
| Flexport | SKU dimension measurement | 2 | per SKU | covers any SKU measurement performed by the vendor | 2026-08-12 |
| Flexport | rush receive / shipping | 48 | per hour | minimum 4 hours | 2026-08-12 |
ShipCalm’s special handling ASN is just under 7.5x its ordinary per-shipment receiving fee ($295 ÷ $39.50 = 7.47, our arithmetic). The card does not define what makes an ASN special-handling, which is the whole question, since the gap between the two rows is $255.50 per shipment ($295 − $39.50, our arithmetic).
Flexport’s pallet rows are priced by grade, and the higher grade carries the higher fee — $25 for grade A against $16 for grade B, with a 60-inch maximum pallet height stated on the grade B row. We report that as it is printed; the page does not explain the direction, and we are not going to reason it into an explanation. What matters operationally is that pallet grade and pallet height are chosen at your supplier’s dock, and both are priced.
The $48 per hour rush receive row carries a four-hour minimum, so it is a $192 event before anything is unloaded (our arithmetic). A labor rate is not comparable to a per-unit or per-order fee without an hours assumption, and an hours assumption is a guess. Compare hourly rates against other hourly rates only.
What Amazon published for inbound placement, against a 2024 baseline
For contrast, and dated deliberately. Against its March 2024 baseline, Amazon’s inbound placement service fee 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. They are a 2024 baseline and not a current 2026 rate. We hold no current inbound placement figure at all, in either state: not a published one and not a quote-gated one. The Amazon FBA rows we do record as quote-gated cover its current fulfillment, storage and removal fee tables, which Amazon publishes inside a logged-in Seller Central session rather than on a static page.
The structure outlives the date, and it is the cleanest example of the category: the fee is set by a routing decision, it is zero if you comply with the routing Amazon suggests, and it is charged per unit if you do not. An illustrative 5,000-unit standard-size inbound at the 2024 average is $1,350 (our arithmetic). Nothing about that is hidden either. It is a published price on a compliance choice, and most sellers meet it on the invoice rather than in the plan.
Three states: a published figure, an explicit refusal, and no row at all
Everything above is one state. There are two others, and collapsing them is how a benchmark becomes false.
Published. ShipCalm, Walmart WFS and Flexport, in the tables above.
Explicitly quote-gated. ShipBob lists an inbound receiving
fee as a category on its pricing page and attaches no amount to it. We record that row as
quote-gated, unit per shipment, read 2026-08-04. That is a checked, sourced fact — we looked, and
the number is not published — and it is usable in a negotiation as it stands.
No row at all. Receiving is the nearest service line we hold to this category — ShipCalm files its penalties there, though the rows above sit across several service lines — and 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. A further group — Amazon FBA, Amazon MCF, Fulfillrite, Launch Fulfillment, Shipfusion, Simpl Fulfillment and Walmart WFS — has no receiving row in our dataset at all, which for some is a fact about the vendor and for others means only that we have not sourced one. Simpl Fulfillment states on its pricing page that it charges no setup, onboarding or receiving fees.
Walmart WFS appears in that last group and in the published table above, which is not a contradiction
and is worth spelling out: its unplanned prep rows are filed under our prep service line, not
receiving. That is the taxonomy problem in miniature, and the limitations section below says what
it costs us.
No company outside the table publishes an ASN penalty, an appointment penalty, or a staging fee that we could find. That is a statement about publication, not about practice. A warehouse that bills nothing for a missed dock appointment would be unusual. Our methodology sets out how we record the difference between “we checked and they publish nothing” and “we have no row”, and the row-level data is at /data/3pl-fee-benchmarks/#receiving.
What your supplier has to do differently
Every fee on this page is triggered upstream of your 3PL. The controls are upstream too.
- Put ASN and appointment obligations in your supplier and forwarder agreements, not just your 3PL contract. ShipCalm’s $150 and $250 are billed to you and caused by them. If your forwarder’s scope of work does not name “file the ASN” and “book the dock appointment” as deliverables, nobody owns them.
- Send your 3PL’s inbound spec to the factory before the PO, not with the shipment. Label placement, poly bag requirement, carton dimensions, maximum pallet height, pallet grade. Walmart’s $0.65 and $0.80 per unit and Flexport’s 48-inch carton limit and 60-inch pallet height are all factory-line decisions.
- Ask for the penalty schedule by name in the RFP. Use the words: ASN, dock appointment, unplanned prep, non-compliant packaging, trailer condition, staging or detention after putaway delay. On most of the cards we read there was nothing published, so the answer has to come by email and go in the contract. The contract red flags list covers what to do with the answer.
- Get every penalty’s unit in writing, and the stacking rule. Per delivery, per shipment, per unit, per carton, per trailer, per pallet per day. Then ask whether a penalty stacks on the base fee for the same event or replaces it — no card we read states that, and it is the difference between $5 and $6.50 on a carton, and between $500 and $1,150 on a trailer ($500 alone, against $500 plus Flexport’s published $650 floor-loaded 40-foot unloading fee; our arithmetic).
- Normalize the penalties into your cost-per-order model before you compare cards. A flat per-delivery penalty and a per-unit penalty do not compare until you put both on your own order profile; our apples-to-apples method shows the conversion, and if you are moving vendors, 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. Every other row here keeps its 2026-08-04 read date and has not been individually re-read since.
We publish no count of compliance-penalty rows, and that is deliberate. Our dataset has no fee
category column, so “compliance penalty” is a judgment we make about a row rather than a filter a
machine can reproduce. The rows in the first table sit across our receiving, prep, other,
surcharge and storage service lines, so no service_line filter reproduces this page’s
selection either. Every row we assign to the category is enumerated in the tables above, so you can
disagree with the boundary and recount it yourself. A number nobody can reproduce from the data is
worse than no number.
We hold no compliance-penalty row for any company outside ShipCalm, Walmart WFS and Flexport. That is a limit on what we have sourced, not a finding about those vendors. The Amazon inbound placement figures are a March 2024 baseline reproduced in Amazon’s seller forums, not a 2026 rate. 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 trigger or a stacking rule unstated we say which one, rather than filling it in. Where we do arithmetic on published figures, the sentence says so.
Sources
- ShipCalm pricing details — accessed 2026-08-04
- Walmart WFS fees — accessed 2026-08-04
- Flexport Omni-Channel Fulfillment pricing overview — accessed 2026-08-04, re-read in browser 2026-08-12
- Amazon inbound placement fee, seller forums — accessed 2026-08-04
- Amazon selling pricing (current fee tables, login-gated) — accessed 2026-08-04
- Amazon Seller Central fee schedule help hub (login-gated) — accessed 2026-08-04
- ShipBob pricing — accessed 2026-08-04
- Simpl Fulfillment pricing — accessed 2026-08-04
The providers named above, fee by fee
This guide spans more than one fee category, so rather than a partial list: here is every provider it names that publishes enough of a rate card to have a page, with every figure sourced and dated.
- Flexport 75 published fees across 13 categories
- ShipCalm 35 published fees across 7 categories
- Amazon MCF 31 published fees across 2 categories
- Walmart WFS 26 published fees across 5 categories
- MyFBAPrep 8 published fees across 3 categories
- Simple Global 8 published fees across 5 categories
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.