3PL Contract Red Flags, Starting With Long-Term Storage
You have a rate card on your desk and an MSA attached to the same email. The rate card is what the salesperson wants you to read; the MSA decides what you actually pay in month 14. Below are the nine clauses that reprice a 3PL relationship after signature, with real contract language, published numbers, and the exact redline to send back. Where a figure comes from one vendor’s own contract we say so: those are that vendor’s terms, not an industry standard.
1. Long-term and aged storage clauses
This is the fastest-growing trap in the category. Long-term storage surcharges are now charged by 48.6% of warehouses surveyed, up from 23.3% the prior year — the clause moved from exceptional to default in a single survey cycle.
The mechanics are consistent across providers. The MSA defines an “aged” or “long-term” threshold, commonly 30, 60, or 90 days idle, with a 1.5x to 3x multiplier on the standard storage rate, or a flat $2–$10 per pallet per month for inventory aged 180+ days. SmartSMSSolutions puts the multiplier band tighter at 1.5x–2.5x.
The structural detail that matters: the trigger is calendar-based inside the WMS and pre-authorized in the MSA, so it fires without a fresh notice, a renegotiation, or a phone call. You find out on the invoice.
What the platforms actually publish
Marketplace fulfillment arms publish their aged tiers, which makes them the best proxy for what a private 3PL’s appendix looks like.
| Provider | Standard storage | Aged/long-term rate | Threshold | Multiplier |
|---|---|---|---|---|
| Flexport Fulfillment (DTC) | $0.81/cu ft per 30 days (Jan–Sep) | $6.90/cu ft per 30 days | 365+ days | 8.5x |
| Flexport Fulfillment (DTC, peak) | $2.40/cu ft per 30 days (Oct–Dec) | $6.90/cu ft per 30 days | 365+ days | 2.9x vs peak |
| Flexport reserve/B2B pallet (LAX) | $15/pallet month 1; $27.50 months 2–12 | $60/pallet per month | Month 13+ | 4.0x vs month 1 |
| Walmart WFS | $0.75/cu ft per month | $2.25/cu ft per month | 366–450 days | 3.0x |
| Walmart WFS | $0.75/cu ft per month | $7.50/cu ft per month | 451+ days | 10.0x |
| Walmart WFS (peak) | $0.75/cu ft (first 30 days, Oct–Dec) | $2.25/cu ft (base + $1.50 surcharge) | Held 30+ days in peak | 3.0x |
| Amazon FBA | $0.78/cu ft/month standard-size, Jan–Sep (figure confirmed effective April 1, 2024) | Aged-inventory surcharge tiers not publicly extractable | 271+ days for the long-term storage fee | Not published |
Sources: Flexport Omni-Channel Fulfillment Pricing Overview; Walmart WFS fees; Feedvisor on Amazon long-term storage fees.
Two notes on the Amazon row, because it gets misquoted constantly. Amazon’s long-term storage fee applies to inventory sitting in an FBA warehouse 271+ days, and it is the template most 3PL aged-storage clauses are copied from. But the current aged-inventory surcharge tiers (181–270, 271–365, 365+ days) sit behind an authenticated Seller Central help page. The $0.78/cu ft figure above comes from a reproduced official Amazon notice effective April 1, 2024 — a dated baseline, not today’s rate. Amazon’s most recent public announcement is an average fulfillment fee increase of $0.08 per unit effective January 15, 2026, with no per-tier table published in static form.
The Flexport row is the one to sit with. Standard DTC storage at $0.81/cu ft per 30 days versus $6.90 past 365 days is an 8.5x step, and Flexport also applies a long-term storage minimum of $0.15 per unit per 30 days — so slow-moving small items get floored upward regardless of cube.
Why it bites at 500–20,000 orders/month
Because the escape hatch also costs money. Say you run an illustrative 400 cubic feet of inventory and 100 cubic feet of it (a discontinued colorway, a seasonal SKU, the bundle that never sold) crosses the 365-day line. At Flexport’s published DTC rates that block goes from $81/month to $690/month: a $609 monthly surcharge on inventory generating no revenue.
The obvious move is to pull it. Flexport’s published removal fees are $1.04/unit for 0–0.5 lb, $1.53 for 0.5–1 lb, $2.27 for 1–2 lb, and $2.89 + $1.06/lb for 2+ lb, with a $25 minimum per removal order. If that 100 cubic feet is 1,200 units in the 1–2 lb band, removal costs roughly $2,724, about four and a half months of the surcharge, paid immediately, plus freight to wherever it goes. (Illustrative order profile; unit counts are ours, rates are published.)
Once the aged clause fires, both doors have a toll on them, and the merchant chose neither door at signature.
What “good” looks like: the threshold sits in the rate card, not the appendix. The multiplier is capped and stated as a number. You get an alert when a SKU is 30 days from crossing. Removal pricing is quoted at signature, not on request.
The question to ask: “Show me the aged-storage clause and the removal rate card in the same document. At what day count does the multiplier fire, what is the multiplier, and what alert do I get before it does?”
The redline: add a notice obligation — the 3PL must flag SKUs approaching the aged threshold at least 30 days out, and no aged surcharge accrues on any SKU the merchant was not notified about. Also cap the multiplier at a stated number rather than “the then-current aged rate.”
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 →
2. Auto-renewal and the notice window
The standard structure is an initial term, an auto-renewal, and a termination-without-cause notice period running two to three months. What makes it a red flag is the arithmetic between the notice window and the renewal date. Negotiation guidance flags notice windows shorter than 60 days because they create accidental-renewal risk: you evaluate in month 11, decide to leave, and discover the window closed in month 10. The same guidance recommends 6-month initial terms with 60–90 days’ exit notice over multi-year lock-ins.
The pattern that does real damage is the combination flagged as the number one contract red flag by fulfillment-industry counsel: a two- or three-year term with a steep early-termination fee and no measurable performance standard attached. You are locked in, and there is no contractual definition of the service failing.
Not every provider does this. ShipBob’s Terms of Service, as of its May 22, 2026 revision, contains no merchant-side auto-renewal clause — the merchant can terminate “anytime with no balance due” by email, while ShipBob must give 30 days’ written notice. Useful leverage when a competing provider tells you a two-year term is standard.
What “good” looks like: 6–12 month initial term, 60–90 days’ notice, and the renewal date plus notice deadline written as actual calendar dates in the signature block.
The question to ask: “What is the exact date my notice window opens and closes for the first renewal?”
The redline: require written notice from the 3PL 30 days before the notice window opens. If they fail to send it, the term converts to month-to-month.
3. Monthly minimums, and minimum creep
Minimums are rising faster than almost any other line on a 3PL invoice. The reported market average is $517/month in 2026, up 53% from $337.50 in 2024. Published minimums across real vendors span a wide range:
| Vendor | Published minimum | Structure |
|---|---|---|
| Fulfillrite | $399/month pick-and-pack minimum (approx. 140 orders) | Plus a $59.99/month account fee |
| Simpl Fulfillment | $750/month | Pay-the-difference |
| Flexport Fulfillment | $5,000/month, effective Jan 1, 2026 | Up from $500 |
| ShipCalm | $6,000/quarter | Billed as pay-the-difference |
Sources: Fulfillrite FAQs; Simpl Fulfillment pricing; Flexport 2026 Fulfillment Pricing FAQs; ShipCalm pricing details.
The Flexport line is the one worth staring at: a monthly minimum moving from $500 to $5,000 effective January 1, 2026 is a 10x change in the floor. If your contract’s minimum reads “the then-current minimum” rather than a locked number, that is your exposure. Flexport also raised its minimum storage charge per DSKU from $0.01 to $0.10 per day, a second floor most quote comparisons miss entirely.
For scale context, Simple Distribution calls $500–$1,500/month, or 70–80% of projected spend, reasonable for brands under 1,000 orders/month, and flags anything above $3,000/month for a small seller. Broader reported ranges run $500–$20,000/month by provider tier.
Why it bites at 500–20,000 orders/month: the minimum gets set against a peak-season projection during a sales conversation in October. Then January arrives. A shortfall or minimum-volume-penalty clause charges you the difference for normal seasonal fluctuation, and GoBolt notes a separate $500–$2,000 “minimum order penalty” that can sit alongside the minimum itself. At Fulfillrite’s $399 pick-and-pack minimum, roughly 140 orders, a brand doing 90 orders in February pays for 140.
What “good” looks like: the minimum is a locked dollar figure for the initial term, measured on a rolling quarterly or annual basis rather than monthly, and set at 70–80% of your realistic trailing-12-month average — not your best month.
The question to ask: “Is the minimum a fixed number for the term, or ‘the then-current minimum’? And is it measured monthly or on a rolling quarter?”
The redline: convert monthly measurement to quarterly or annual, lock the dollar figure for the initial term, and add a seasonality carve-out for your two slowest months.
4. Uncapped rate-increase and GRI clauses
Here is the actual red-flag language, as identified verbatim by negotiators:
“Rates subject to adjustment based on changes in operating costs, labor rates, or market conditions, with 30 days written notice.”
Simple Distribution describes this as a blank check permitting unlimited increases. “Market conditions” is not a defined term, and 30 days is not enough runway to move a warehouse. A related pattern: uncapped storage rate increases, where the provider can raise storage with 30 days’ notice and no ceiling at all.
Two details compound it. First, silence is usually consent: ShipBob’s ToS gives itself 30 days’ notice for general fee increases but only 15 days for carrier-surcharge pass-throughs, and states that continued use of the service after the effective date “will mean you accept” the new fee. One vendor’s language, but a common construction. Second, there is genuine upstream cost pressure: FedEx and UPS base rates rose roughly 5.9% in 2026, with surcharges rising faster than base rates. A rate-increase clause is not automatically predatory. An uncapped one is.
The operator hazard is not hypothetical. Beardbrand’s founder, in an on-record account published by Practical Ecommerce, reported that a new 3PL “altered quoted rates without notification,” caught only because the ops manager had kept a printed copy of the original quote. Per-order shipping was meant to fall from $13 to about $10; it went to $14.50 instead. (Named case study, not a statistic.)
What “good” looks like: annual increases capped at 3–5% or CPI, whichever is lower, tied to an objective published index, with 60–90 days’ notice and an exit right if the increase exceeds the cap. A second source gives the same guidance: negotiate caps to limit surprise GRIs and fee spikes.
The question to ask: “What is the maximum you can raise my rates in any 12-month period, expressed as a number?”
The redline: replace “operating costs, labor rates, or market conditions” with a named index; cap at the lesser of CPI or 5%; require 60 days’ notice; and add a termination right, without early-termination fee, if any increase exceeds the cap. Separately: carrier surcharges pass through at cost, with the underlying carrier invoice available on request.
5. SLAs that sound good and pay out nothing
The benchmarks everyone quotes are 99.5%+ order accuracy, 98%+ same-day or next-business-day fulfillment, 24–48 hour receiving turnaround, and 24-hour reporting response. Those are the right targets. The problem is the remedy attached to them.
Service credits are typically structured as percentage credits tied to the severity and duration of a miss, applied to the monthly handling invoice, with Simple Distribution quantifying typical credits at 5–15% of the monthly invoice. Read that carefully: it is a percentage of the handling invoice. Not shipping spend, not the value of the goods, not anything downstream.
So a mispick that costs you a reship, a refund, a one-star review and a customer recovers a credit measured against a few dollars of pick-pack labor. Worse, many MSAs never specify numeric targets at all, which removes any enforcement leverage when service degrades.
One Shopify merchant documented roughly $30,000 invoiced across 2,300 orders with an estimated $6,000–$8,000 in avoidable cost from mis-weighed packages, a carrier account left misconfigured for four-plus months, and inconsistent box sizing, with no SLA credit process evident anywhere in the thread. (Anecdote, single operator, not a statistic.)
What “good” looks like: numeric targets in the contract, a monthly reporting obligation with the provider’s own data, per-error reimbursement on top of percentage credits, and — the clause that actually has teeth — a performance-based exit right if SLAs are missed for 2+ consecutive months, with no early-termination fee.
The question to ask: “If you ship 2% of my orders wrong for two months straight, what specifically do I get, and can I leave without penalty?”
The redline: the exit right is the ask. Credits are a rounding error; the ability to walk is the leverage.
6. Shrinkage allowances
Every 3PL loses some inventory. The contract decides who eats it.
Industry benchmarks: average shrinkage of 1.44% across 150 U.S. 3PLs surveyed, with a 0.65% median among 500 e-commerce brands surveyed separately, against a historical pre-automation retail warehouse average of 2–3%. Contractual allowance tiers per the same source: premium/automated providers guarantee 0.1–0.5%, standard 3PLs 0.5–1%, basic operations 1–3%, and anything above 3% is high-risk. Budget-tier providers have been cited allowing 2–4% inventory loss annually before reimbursement.
A real clause, for calibration: ShipBob’s ToS sets its shrink allowance at 0.5% of inventory loss on a rolling 12-month basis. Below that threshold the merchant bears the loss with no compensation, and claims for loss must be filed within 45 days, damage within 30. That is ShipBob’s contract, not an industry standard, but 0.5% is at the tight end of normal and a fair benchmark to hold others to. A competing operator view puts the “acceptable” norm at 1–3% while stating internally that anything over 1% is not acceptable, and that recurring shrinkage is grounds to switch providers rather than negotiate a bigger allowance.
Why it bites at 500–20,000 orders/month: an allowance is not a target, it is a deductible. Take an illustrative brand holding $400,000 of inventory at cost. A 0.5% allowance means $2,000 of annual loss is yours with no recourse; at 1% it is $4,000. At the 1.44% survey average of actual loss you are down $5,760 and can only claim above the threshold, after which the liability cap below governs what you actually collect.
What “good” looks like: 0.5–1% allowance with a reimbursement clause above it, paid at your landed cost, plus quarterly cycle-count reporting so you see shrinkage before the annual reconciliation.
The question to ask: “What is your allowance percentage, is it measured per-SKU or across total inventory value, and what was your actual measured shrink rate last year?”
The redline: tie the allowance to a number, require quarterly cycle counts shared with you, and set the claim window at 60 days rather than 30–45 — reconciliation on a real catalog takes longer than 30 days.
7. Liability caps
This is the clause most likely to be dramatically below the value of your goods.
Real, sourced caps from ShipBob’s Terms of Service: parcel loss capped at $100.00 per parcel; general goods damage capped at $1.00 per pound; aggregate liability capped at the lesser of $10,000 or 100% of fees paid in the preceding three months. ShipBob provides no insurance itself; merchants may buy optional parcel insurance through a third party (Cabrella), and goods-in-transit liability shifts to the final-mile carrier once shipped. One vendor’s contract, cited because it is real and public — not because it is the norm.
The norms are, if anything, worse. Legal commentary cites weight-based caps as low as $0.50 per pound. Negotiation guides cite per-unit caps of $5–$25, often below actual product cost, and caps as low as $0.50 per unit.
Run the arithmetic against your own catalog. A $1/lb cap on a 400 lb pallet recovers $400 whether that pallet holds $2,000 or $40,000 of goods. A $100/parcel cap on a $240 order recovers less than half. And a $10,000 aggregate cap can be exhausted by a single bad month, after which the provider owes nothing further no matter what else goes wrong that year.
What “good” looks like: liability tied to declared product value rather than weight or parcel count, with carve-outs for gross negligence and willful misconduct. Confirm warehouse legal liability coverage (most reputable 3PLs carry $500K–$2M) plus general liability, cargo, and workers’ comp, with you named as additional insured. If inventory on hand exceeds $100K, carry supplemental cargo insurance regardless of what the MSA says.
The question to ask: “Send me your certificate of insurance and the warehouse legal liability limit. If you lose a pallet of my product, what do I recover under this contract?”
The redline: raise the per-unit cap to declared value, remove the aggregate cap or raise it to a multiple of annual fees, and add the gross-negligence carve-out. If they won’t move, price supplemental cargo insurance into your all-in cost per order — see how to compare 3PL quotes apples-to-apples.
8. Payment terms and late fees
One real, sourced example, explicitly not an industry norm: ShipBob’s ToS sets billing cadence at onboarding (daily, weekly, biweekly, or monthly), requires invoice disputes within 30 days, and accrues late-payment interest starting the 6th day after the due date at 18% APR for US and Canadian merchants (10% elsewhere). Non-payment also allows ShipBob to revoke negotiated pricing and revert the account to the standard rate card.
We looked for comparable published payment terms from other providers and found none. Treat 18% APR as one documented data point, not a benchmark.
Three things there matter more than the interest rate. The dispute window is 30 days, which means an unreviewed invoice is an accepted invoice. Interest starts on day 6, not day 30. And losing negotiated pricing after a payment lapse is a far bigger number than the interest — a discount that took two rounds to win can evaporate over one cash-flow gap.
What “good” looks like: net-15 or net-30 with a defined grace period, a 60-day dispute window, and an annual invoice audit right with fully itemized fee schedules to catch rate-card drift over the term.
The question to ask: “How many days after the due date does interest start, and does a late payment affect my negotiated rates?”
The redline: extend the dispute window to 60 days, add a cure period before any pricing reversion, and secure the audit right in writing.
9. Termination and offboarding obligations
The exit clause is written when you have the least leverage and read when you have none.
Standard notice is 60–90 days, with performance-tied exit rights. Early termination fees are commonly 1–3 months of minimum spend, with one month acceptable and three or more aggressive. Account closure fees run $500–$2,000, often buried in appendices, and GoBolt cites “$5,000+” as an aggregate cost to terminate or transfer inventory out.
The clause that costs the most is the one that isn’t there. MSAs with no exit transition period let the provider charge rush-shipout fees during the exit window, when you have no alternative. The same source flags data lock-in — proprietary systems that make order and inventory data hard to extract, paired with steep migration fees as a separate exit charge.
Counter-example worth citing in negotiation: ShipBob’s ToS lets the merchant terminate anytime with no balance due, with a 30-day removal window for goods post-termination, after which unclaimed inventory may be disposed of. Not every provider charges an exit fee.
One honest gap: no source establishes a contractual default for who bears transfer-prep and outbound freight at exit. Most MSAs are silent, and the general framing is that the merchant pays outbound freight plus any relabeling or palletizing prep. Nobody publishes a rate, so get it quoted before you sign. Full cost stack in what it costs to switch 3PL warehouses.
What “good” looks like: the 3PL keeps fulfilling at current rates for ~30 days post-termination, provides all order and inventory data in standard formats (CSV, Excel, API) within 10–30 business days at no charge, and retains data for 12 months post-termination. Inventory-return window at 30 days; 60+ days is a problem.
The question to ask: “On the day I give notice, what does the next 90 days cost me — line by line?”
The redline: shipout rates at exit are locked to your standard contract rates, not “then-current labor rates.” Data export is free and in a named format. Early-termination fee capped at one month of minimum spend.
The pre-signature pass
Ten minutes with the MSA and this list catches most of it.
| Clause | The question | Your redline |
|---|---|---|
| Aged storage | What day count, what multiplier, what alert? | 30-day advance notice; capped multiplier stated as a number |
| Auto-renewal | Exact date my notice window opens and closes? | Provider must notify 30 days before the window opens |
| Monthly minimum | Fixed for the term, or “then-current”? | Locked figure, measured quarterly, at 70–80% of trailing average |
| Rate increases | Max increase in any 12 months, as a number? | Lesser of CPI or 5%; 60 days’ notice; exit right above the cap |
| Carrier surcharges | Pass-through at cost, or marked up? | At cost, with underlying carrier invoice on request |
| SLA remedy | What if you miss for two months straight? | No-penalty exit right after 2 consecutive months of misses |
| Shrinkage | Allowance %, and last year’s actual rate? | 0.5–1%, quarterly cycle counts, 60-day claim window |
| Liability cap | What do I recover if you lose a pallet? | Declared value, not $/lb; gross-negligence carve-out |
| Payment terms | When does interest start, does it kill my discount? | 60-day dispute window; cure period before pricing reverts |
| Termination | What do the 90 days after notice cost, line by line? | Locked shipout rates; free data export; ETF ≤ 1 month minimum |
The full 40-point version — including the receiving, returns, and VAS clauses that didn’t make this list — ships with the Kit.
What to do next
- Pull the aged-storage clause first. It is the clause most likely to be missing from your quote entirely, and the one growing fastest — 48.6% of surveyed warehouses now charge it, up from 23.3%. Ask for the threshold, the multiplier, and the removal rate card in one document.
- Put the renewal and notice dates in your calendar before you sign, with a 30-day-prior reminder. Accidental renewal is the cheapest expensive mistake in this category.
- Convert the minimum to a rolling quarter. If your January is 40% of your October, monthly measurement is a tax on seasonality you can negotiate away in one email.
- Price your liability exposure. Multiply your average pallet value against the contract’s $/lb cap. If the gap is uncomfortable, buy supplemental cargo insurance and add its cost to your all-in cost per order.
- Model it before you sign. Aged storage, minimums, and surcharges only surface in a 12-month projection — see our methodology, the 3PL fee benchmarks dataset, and the hidden fees guide.
Sources
- Fulfill.com, “How Much Does a 3PL Cost in 2026? 16 Fee Benchmarks” — accessed 2026-08-04
- Red Stag Fulfillment, “3PL Pricing Guide 2026” — accessed 2026-08-04
- Red Stag Fulfillment, “What Is The Average 3PL Shrinkage Rate? 2026 Benchmarks” — accessed 2026-08-04
- GoBolt, “3PL Fees and Rates Guide” — accessed 2026-08-04
- SmartSMSSolutions, “3PL Pricing 2025: Every Fee Explained” — accessed 2026-08-04
- ShipBob Terms of Service (May 22, 2026 revision) — accessed 2026-08-04
- Simple Distribution, “How to Negotiate a 3PL Contract” — accessed 2026-08-04
- ShipDudes, “3PL Contract Red Flags: 12 Terms That Will Cost You” — accessed 2026-08-04
- ShippingCostOptimization, “3PL Contract Clauses and SLA Examples for Shippers” — accessed 2026-08-04
- Jit Transportation, “Top Legal Issues in 3PL Agreements” — accessed 2026-08-04
- OTW Shipping, “What’s a Normal Amount of Inventory Shrinkage to Expect From a 3PL?” — accessed 2026-08-04
- Flexport, “Omni-Channel Fulfillment Pricing Overview” — accessed 2026-08-04
- Flexport, “2026 Flexport Fulfillment Pricing FAQs” — accessed 2026-08-04
- Walmart Marketplace Learn, “WFS Fees” — accessed 2026-08-04
- Feedvisor, “Amazon Long-Term Storage Fees 2026” — accessed 2026-08-04
- Amazon, “Update to U.S. Referral and Fulfillment by Amazon Fees for 2026” — accessed 2026-08-04
- Amazon Seller Forums, official 2024 FBA fee-change notice (reproduced) — accessed 2026-08-04
- Amazon Seller Central, aged inventory / removal fee reference (authenticated page) — accessed 2026-08-04
- Fulfillrite, FAQs — accessed 2026-08-04
- Simpl Fulfillment, Pricing — accessed 2026-08-04
- ShipCalm, Pricing Details — accessed 2026-08-04
- WarehouseQuote, “3PL Inventory Transfer Playbook” — accessed 2026-08-04
- Practical Ecommerce, “Lessons from Changing 3PLs” (Beardbrand) — accessed 2026-08-04
- Shopify Community, “How can I resolve my 3P fulfillment company issues?” (user “inlander,” March 26, 2021) — accessed 2026-08-04