RateCardLab

3PL Contract Red Flags, Starting With Long-Term Storage

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

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.

ProviderStandard storageAged/long-term rateThresholdMultiplier
Flexport Fulfillment (DTC)$0.81/cu ft per 30 days (Jan–Sep)$6.90/cu ft per 30 days365+ days8.5x
Flexport Fulfillment (DTC, peak)$2.40/cu ft per 30 days (Oct–Dec)$6.90/cu ft per 30 days365+ days2.9x vs peak
Flexport reserve/B2B pallet (LAX)$15/pallet month 1; $27.50 months 2–12$60/pallet per monthMonth 13+4.0x vs month 1
Walmart WFS$0.75/cu ft per month$2.25/cu ft per month366–450 days3.0x
Walmart WFS$0.75/cu ft per month$7.50/cu ft per month451+ days10.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 peak3.0x
Amazon FBA$0.78/cu ft/month standard-size, Jan–Sep (figure confirmed effective April 1, 2024)Aged-inventory surcharge tiers not publicly extractable271+ days for the long-term storage feeNot 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:

VendorPublished minimumStructure
Fulfillrite$399/month pick-and-pack minimum (approx. 140 orders)Plus a $59.99/month account fee
Simpl Fulfillment$750/monthPay-the-difference
Flexport Fulfillment$5,000/month, effective Jan 1, 2026Up from $500
ShipCalm$6,000/quarterBilled 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.

ClauseThe questionYour redline
Aged storageWhat day count, what multiplier, what alert?30-day advance notice; capped multiplier stated as a number
Auto-renewalExact date my notice window opens and closes?Provider must notify 30 days before the window opens
Monthly minimumFixed for the term, or “then-current”?Locked figure, measured quarterly, at 70–80% of trailing average
Rate increasesMax increase in any 12 months, as a number?Lesser of CPI or 5%; 60 days’ notice; exit right above the cap
Carrier surchargesPass-through at cost, or marked up?At cost, with underlying carrier invoice on request
SLA remedyWhat if you miss for two months straight?No-penalty exit right after 2 consecutive months of misses
ShrinkageAllowance %, and last year’s actual rate?0.5–1%, quarterly cycle counts, 60-day claim window
Liability capWhat do I recover if you lose a pallet?Declared value, not $/lb; gross-negligence carve-out
Payment termsWhen does interest start, does it kill my discount?60-day dispute window; cure period before pricing reverts
TerminationWhat 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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


Related

Found an error or a rate that has changed? Tell us at [email protected] — we log every fix on the corrections page.