Pricing & Billing17 December 202512 min read

Storage rate cards: 5 pricing models 3PLs use (and the hidden costs of each)

Per-pallet, per pallet-equivalent, per m³, per-bay, activity-based. The five storage pricing models 3PLs use — with the hidden costs of each, worked examples, and a framework for picking the right one per client.

Two clients in the same Northampton shed. Same row of racking, same forklift drivers, same insurance. One pays £3.20 per pallet per week and ships maybe 40 outbound pallets a month. The other pays a flat £6,400 a month for a sectioned-off corner of the warehouse and shoves 2,000 cartons a day through it. Both are profitable. Both think they got a fair deal. Both rate cards look nothing like each other.

That's the thing about 3PL pricing that catches operators out: there is no "right" rate card. There are five models in common use, each one suits a particular shape of client, and each one has a specific way of leaking margin if you apply it to the wrong account. Most operators run one model across their entire book — usually the one they started with — and bleed profit on half their accounts as a result.

This post is the third in a cluster. The pallet equivalents post covered how footprint billing actually works, and the seven failure modes of pallet-count billing covered where flat per-pallet rates break. This one zooms out: the five pricing models in active use, the hidden costs of each, and which client profile each suits.

Model 1: Per-pallet flat rate

The default. £X per pallet per week, where X is somewhere between £2.50 and £4.50 depending on geography and what the rest of the shed is earning. Customer drops in 100 pallets, customer pays for 100 pallets. Invoice runs on Friday, done.

Best for: mid-velocity clients with uniform pallets and predictable inbound profiles. Standard 1200×1000 stackable pallets, single SKU per pallet, weekly or fortnightly rhythms. Wholesale distributors, B2B brands with one product range.

How you price it: all-in cost of running the warehouse per bay per week (rent + utilities + overhead + target margin), divided by usable bays. Most operators land at £3.00–£3.50 per pallet per week for ambient storage outside the M25.

Hidden cost to the 3PL: every one of the seven failure modes in the prequel post. Part-pallets, oversized loads, mixed bays, vertical density mismatches. Each leaks £1,000–£5,000 a year on a single client. The model also gives you no way to defend the rate when a competitor undercuts you, because the unit you're billing in doesn't match the unit you consume.

Hidden cost to the customer: they pay for floor they're not using when they ship half-pallets, quarter-pallets, or low-velocity assortment SKUs. They have no visibility into whether the rate is fair, because they can't see your bay utilisation maths.

Worked example. A homewares client stores 80 pallets average inventory at £3.20/pallet/week. Annual storage revenue: £13,312. But 30 of those pallets are quarter-pallets consolidated to 8 bays, 10 are oversized non-stackable loads each eating 2 bay-positions, and the rest are standard. Real floor usage: 48 + 20 + 40 = 108 bay-positions. At a true £4.20/bay/week floor rate, you should be earning £23,587. You're £10,275 light, every year, on one client.

Model 2: Per pallet-equivalent

The pallet-equivalent (PE) is the same concept as "pallet" except it's tied to the bay rather than the physical pallet. A standard pallet is 1.0 PE. An oversized load might be 2.0 PE. A half-pallet sharing a bay is 0.5 PE. The arithmetic is current PEs × rate × days. I won't repeat the full mechanics — they're in the prequel.

Best for: 3PLs with a mixed customer book — some uniform-pallet clients, some assortment-SKU clients, some that ship the occasional oversized load. Most multi-client 3PLs in the UK fit this profile and don't realise it.

How you price it: the same cost-per-bay-per-week number you used for the flat-rate model, billed directly. If your true floor cost is £4.20 per bay per week, your PE rate is £4.20.

Hidden cost to the 3PL: you need clean SKU master data. Per-SKU footprint multipliers, per-bay capacity, a system that can sum PEs by client on demand. If your data is messy, PE billing produces invoices nobody trusts and you spend three hours a week answering "why is this 1.4 PE?" emails.

Hidden cost to the customer: PEs are honest, which means they find out their assortment range was costing them less than they thought and their oversized loads were costing them more. Fine if you front-load the conversation, painful if the first PE invoice arrives without warning.

Worked example. The same homewares client from Model 1, repriced. 48 PEs of consolidated assortment + 20 PEs of oversized + 40 PEs of standard = 108 PEs at £4.20/PE/week = £23,587/year. Customer pays for what they use. You earn the full floor rate. Both of you can defend the number on a whiteboard, which is the only test that matters at renewal.

Model 3: Per cubic metre

Storage billed by volume rather than footprint. £X per m³ per week, where X varies wildly by sector: £8–£12/m³ for pharmaceutical at controlled temperature, £15–£25/m³ for frozen, £4–£6/m³ for ambient (which is why nobody actually does ambient by m³ — see below).

Best for: specialised storage where the constraint isn't floor — it's cubic capacity inside a temperature-controlled envelope. Pharma, cold chain, regulated chemicals, anything where the chamber itself is the expensive bit and you can't just bolt on another aisle.

How you price it: all-in cost of the chamber per m³ per week (chamber lease + refrigeration + compliance + skilled labour), add margin, publish. For pharma 2–8°C you're paying back the chamber capex over 7–10 years, so the m³ rate has a meaningful capital recovery component baked in.

Hidden cost to the 3PL: you have to actually measure the cubes. Most WMS data has length, width, and a speculative "pallet height" nobody validates at goods-in. If your m³ figures come from master data the customer filled out in 2019, you're either over-billing shrink-wrapped pallets that compress in storage or under-billing bulky low-density loads. Customer audits hurt either way.

Hidden cost to the customer: they pay for air. A 1.2m × 1.0m × 1.8m pallet is 2.16 m³ on paper, but the goods inside might be 0.9 m³ of actual product — the rest is dunnage, voids, and case-stack gaps. That's correct because you're providing controlled-environment volume, not product volume, but it's a hard conversation if procurement starts running density calculations.

Worked example. A pharma client stores 90 pallets of cold-chain product, average pallet height 1.6m. Total volume: 90 × 1.2 × 1.0 × 1.6 = 172.8 m³. At £10/m³/week that's £89,856 per year. The same 90 pallets in an ambient warehouse at £3.20/pallet/week would be £14,976 — so the customer pays 6× the ambient rate for the same pallet count. Sounds outrageous until you cost out the chamber and realise the margin on £89,856 is maybe 22% and on £14,976 is maybe 11%. Per m³ exists because per pallet doesn't capture what the chamber costs to run.

Model 4: Per-bay flat rate

A dedicated chunk of warehouse — a row, a half-aisle, a whole mezzanine, sometimes a whole shed — billed at a flat monthly figure regardless of how full it is. £6,400 a month for "the corner with the 480 bay positions, take what you want with it." The customer might fill it, might run it at 60% utilisation, might leave it empty between seasonal peaks. The invoice doesn't move.

Best for: single-client dedicated contracts where the customer is large enough to commit to a defined footprint for a defined term. Retail private-label brands, e-commerce operators above a certain GMV threshold, manufacturers with bonded or quarantine requirements. Usually three-year contracts minimum.

How you price it: cost per bay per week × number of bays × utilisation buffer × term-length discount, plus a margin that reflects the volatility you've taken off the table. Customer commits to 480 bays for three years; you can finance the racking, fix the labour plan, sign a power contract. That predictability is worth 8–12% off the per-bay rate.

Hidden cost to the 3PL: the standard trap is the customer signs for 480 bays, fills it to 300 in year one, then demands an extra 100 bays in year two without renegotiating. If the agreement doesn't lock the footprint, the customer creeps into adjacent capacity and you absorb the cost.

Hidden cost to the customer: they pay full freight for empty bays. Forecast 80% utilisation, hit 55%, and you're paying 25% of the contract value to store air. If the business shrinks below contracted volume they're locked in for the full term. Dedicated contracts are great when both sides are growing and brutal when they're not.

Worked example. A retail private-label brand takes 480 bays at £4.20/bay/week × 52 weeks = £104,832 baseline. Apply an 8% term discount and they pay £96,445. Year one they run at 78% utilisation (375 bays average). Real per-bay cost to them: £257/bay/year, vs £200/bay/year on activity-based billing at the same headline rate. They overpay £21,375 in year one in exchange for guaranteed capacity. Grow into the full 480 by year three and the contract wins for both sides. Don't, and they paid for empty floor — but you locked in revenue you could plan against.

Model 5: Activity-based

The model favoured by e-commerce 3PLs and anyone shipping high-throughput consumer goods. Storage is one line item; everything else is unbundled. A typical activity-based rate card has:

  • Storage: £X per pallet (or PE, or m³) per week
  • Inbound: £Y per pallet received, plus £Z per case for case-level put-away
  • Outbound: £A per pick, £B per pack, £C per pallet shipped
  • Returns: £D per unit inspected, sometimes graded
  • Value-add: kitting, labelling, gift-wrapping — usually per-unit or per-minute

The customer pays for storage and they pay for every movement. Slow stock costs them less; fast stock costs them more, in a way that maps to your real labour cost.

Best for: high-velocity e-commerce, FMCG with constant promo cycles, anything with significant labour intensity per pallet stored. If your pickers are turning over more units per day than your forklifts are moving pallets, activity-based catches the labour cost the storage line can't.

How you price it: time-and-motion study, properly done. How many seconds to put away a pallet, pick a unit, pack a parcel, process a return? Multiply by fully-loaded labour cost (supervision, breaks, training, attrition included), add margin, publish. The storage component drops to maybe 60–70% of the per-pallet rate you'd charge if storage were the only line — because labour is now paying its own way.

Hidden cost to the 3PL: the rate card is six pages instead of one, and every quote becomes a forecast exercise. You need to model the customer's likely pick mix, return rate, and promo cadence before you can tell them what they'll pay. Get the forecast wrong and you've under-bid a contract you can't easily reprice mid-term.

Hidden cost to the customer: they can't budget. A flat per-pallet rate gives them a number they can plug into their P&L. Activity-based makes warehouse cost a function of sales volume, and if the forecast slips they're staring at an invoice 30% higher than budget with no easy way to push back on any single line. Procurement teams hate this. Finance teams hate it more.

Worked example. A DTC homewares brand stores 220 pallets average and ships 14,000 orders a month (average 2.1 units per order, so 29,400 picks). Activity-based rate card: £2.40/pallet/week storage + £0.85/pick + £0.65/pack + £1.80/parcel-shipped + £2.20/return-processed (running at 8% return rate, so 1,120 returns/month). Monthly invoice:

  • Storage: 220 × £2.40 × 4.33 = £2,286
  • Picks: 29,400 × £0.85 = £24,990
  • Packs: 14,000 × £0.65 = £9,100
  • Parcels: 14,000 × £1.80 = £25,200
  • Returns: 1,120 × £2.20 = £2,464

Total: £64,040 per month. Storage is 3.6%, movement is 96.4%. A customer who assumes activity-based 3PLs are "more expensive" is missing the point — they're priced for what's actually happening. A flat per-pallet quote for this account would be either a giveaway or a disaster depending on which side guessed wrong.

How to pick a model per client

The framework, distilled. None of this is novel — the operators who get it right are just disciplined about applying it.

High-velocity SKUs → activity-based. If the labour cost per pallet stored is meaningfully bigger than the storage cost per pallet stored, you need a rate card that captures both. E-commerce, fast-moving consumer goods, promotional pipelines. Storage is a small line; movement is most of the bill.

Low-velocity or long-stay SKUs → per pallet-equivalent (or per pallet flat). If the customer drops in 200 pallets and leaves them for nine months, the labour line is irrelevant. Charge for the floor honestly using PEs. Flat per-pallet works if the customer's pallets are uniform — but PE is the more defensible upgrade.

Specialised storage (chilled, regulated, hazardous) → per cubic metre. When the chamber capex and operating cost is the dominant variable, bill for volume of conditioned space, not floor footprint. Pharma, frozen, controlled-substance, bonded. The customer is paying for the envelope, not the pallet.

Dedicated client (big enough to fill a room) → per-bay flat rate. If the customer can commit to a defined footprint for a multi-year term, give them the per-bay deal. They get predictability and a 5–10% discount; you get planning visibility and a contract you can finance against. Just cap their footprint in the agreement, or you'll give away year-two growth.

Mixed customer book → segment the rate card. Most 3PLs don't have one model — they have three. Activity-based for the e-commerce accounts, PE-based for the wholesale accounts, dedicated per-bay for the anchor tenant. Different rate cards for different customer profiles, all built on the same underlying cost model. Operators who refuse to segment because "one rate card is simpler" are usually the ones leaking margin on half their accounts.

The mistake isn't choosing the wrong model. The mistake is choosing one model and applying it to every client because that's what the WMS was set up to do years ago. The right answer is usually two, sometimes three, and a WMS that can run all of them out of the same data without separate spreadsheets.

If you've recognised your operation in any of the five descriptions above, the 3PL solutions page walks through how footprint billing, activity-based rate cards, and dedicated-contract pricing all live inside the same system. The rate card you have probably isn't wrong. It's just doing the work of three rate cards at once, and the customers on the wrong one know.