Billing clients is, for most fulfillment operators, a task that takes anywhere from a few hours to several working days per month. Excel, invoices, manual calculations, phone calls to clarify a line item. One operator I spoke with recently told me his admin staff spends 5 hours per day on this — with 20 clients that’s over half an FTE, just on keeping spreadsheets in order.

The problem rarely starts with the tool. It starts with the billing model the operator picked at the very beginning — one that either doesn’t match the client profile, or is too complex to reliably handle in Excel.

For six years I’ve been working with Baselinker — mainly with e-commerce stores, but recently more and more with the fulfillment operators that serve dozens of those stores. From those conversations I’ve noticed recurring patterns. In this article I’ll show five billing models that are actually used in the Polish market, when each one makes sense, and how different pricing units change the structure of your pricing. Plus a few specific traps operators fall into when designing pricing.

TL;DR

  • Five billing models: pay-as-you-go, subscription, hybrid, hybrid with logistics minimum, KPI/SLA. In practice, most operators use a hybrid.
  • Fulfillment pricing has six components: receiving, storage, pick&pack, returns, courier shipping, value-added services. Each can be billed in a different unit.
  • Pricing units matter as much as the model itself. Per pallet location vs. per CBM for clients with many SKUs can reduce storage cost by roughly 40%.
  • Every client needs their own pricing structure. An operator with 8-15 clients on different models loses several hours to several working days per month on manual Excel billing.

What a fulfillment pricing structure consists of

Before we get into the models, one thing must be clear. A fulfillment pricing structure almost always has six line items:

  1. Receiving — unloading deliveries, verification, putting goods on the rack
  2. Storage — recurring storage of inventory
  3. Pick & Pack — order picking, packing, label
  4. Returns — intake, inspection, returning to stock
  5. Courier shipping — pass-through or with a markup
  6. Value-added services — co-packing, inserts, labeling, kitting

What changes between operators is how they’ve constructed the entire pricing structure (the billing models) and what units they use for each line item (the pricing units). These are two different things, and they often get conflated at the negotiation stage.

Billing models — five ways to construct pricing

Model 1: Pay-as-you-go (per operation)

The client only pays for activities that actually happened. They received 12 pallets this month — they pay for 12. They shipped 480 orders — they pay for 480. The warehouse holds 28 pallet locations — they pay for 28.

This means converting fixed costs into variable costs on the client’s side. Poland’s largest fulfillment operator, Omnipack, says it plainly: the most beneficial model is pay-for-performance — paying for actual activities performed. For the client this means: when sales drop, costs drop too. When they grow, costs scale proportionally to revenue.

Pay-as-you-go
Best forSeasonal client, growth-phase, small starting volume
Not suitable forClient with very stable volume who wants a fixed budget
ProsFlexibility, fair pricing, low entry barrier
ConsHard to budget for, every operation as a separate invoice line

In pure form, however, this model is rare. In practice it’s almost always combined with a subscription or a logistics minimum, because the operator needs to cover the fixed cost of servicing the client account even in a slow month. More on this below.

Model 2: Subscription

The client pays a fixed monthly amount for a package of services, regardless of volume (up to a defined cap). Above the cap, variable fees kick in.

Subscription
Best forClient with stable volume who wants full predictability
Not suitable forSeasonal client — they overpay during slow months
ProsEasy budgeting, client knows what they’ll pay
ConsNo flexibility, in low-volume months the client subsidizes the operator

Pure subscription is rare in e-commerce fulfillment — most often it’s part of a hybrid model.

Model 3: Hybrid

The most popular model in the real world. A fixed subscription fee plus variable line items for actual operations. The client gets predictability (subscription), the operator covers the fixed cost of servicing the account.

Structure of a typical hybrid:

  • Fixed fee: 500-1,500 PLN/month (system access, integrations, basic service)
  • Pick&Pack: 4-8 PLN per order (or per order + SKU)
  • Storage: variable, depending on unit (pallet, CBM, location)
  • Returns: 50-150% of pick&pack rate
  • Courier shipping: pass-through from the courier
Hybrid
Best forMost mid-sized clients
Not suitable forVery small clients (entry barrier too high) or very large clients (better to negotiate SLA)
ProsCompromise between predictability and flexibility
ConsMore complex construction, more line items on the invoice

Model 4: Hybrid with logistics minimum

A variant of the hybrid, where alongside the fixed fee (or instead of it) the operator enforces a minimum variable amount per month. If the client doesn’t generate that amount from operations, they top up the difference to the threshold.

A logistics minimum is a construct that protects the operator from “phantom clients” — those who signed a contract but don’t actually send orders. Specific amounts are a matter of negotiation and depend on the operator’s scale and client profile — in practice they range from a few hundred to a few thousand zlotys per month.

With logistics minimum
Best forMedium-to-large client with guaranteed volume
Not suitable forSmall test client — the minimum often multiples their real bill
ProsSafe for the operator, clear rules
ConsA low-volume client effectively pays multiples of the listed rate

The trap: if a client has 100 orders per month at 5 PLN each (that’s 500 PLN from operations) and the minimum is 1,500 PLN, they’re effectively paying 15 PLN per order, not 5 PLN from the price list. Worth saying this to the client out loud when signing the contract.

Model 5: KPI / SLA-based

A model for advanced partnerships. The operator and client agree on concrete metrics — order fulfillment time, picking accuracy, cutoff time, shipping accuracy. Price (or bonus/penalty) depends on the result.

In Polish e-commerce fulfillment this is rare, because it requires a solid measurement system and a lot of trust between the parties. More common in contract logistics with large B2B clients.

KPI / SLA
Best forClient with very high volume (1,000+ orders per day), premium verticals, B2B with delay penalties
Not suitable forSmall clients — the cost of measurement exceeds the benefit
ProsThe operator has a direct stake in quality
ConsHard to implement, frequent disputes over metric definitions

Pricing units — where models end and units begin

After picking the model, the second layer of decisions is what units to use for each line of the pricing. These are decisions made at the level of each line item separately.

Storage — pallet location, CBM, location, unit, fixed fee

Storage is continuous occupation of space, so the unit must reflect that. In the Polish market there are five common approaches:

UnitWhen it makes senseTypical PL rate
Per pallet locationPalletizable goods, client stocks in pallets50-150 PLN/pallet/month
Per CBM (cubic meter)Mixed SKUs, irregular shapes, pallets often half-empty~100 PLN per 2 m³/month
Per location (shelf, slot)Small SKUs, cosmetics, accessories3-15 PLN/location/month
Per unit / dayHighly varied SKUs, micro-products0.01-0.05 PLN/unit/day
Fixed fee (m² of rented space)Contract logistics, dedicated section15-40 PLN/m² + shared overhead

These are the models we support in FulBill:

Storage in FulBill — 4 billing models: per unit, per location, fixed fee, per CBM

The per-pallet-location trap: if the client has many SKUs and pallets are often half-empty, they’re paying for space they don’t use. Red Stag, in their guide to 3PL pricing, shows the concrete math — billing per CBM instead of per pallet location can reduce storage cost by around 40% for clients with many SKUs. In the Polish market CBM is increasingly a topic of conversation, especially for clients with bulky items.

Pick & Pack — three sub-models

The logic of “pay per order” looks simple, but in practice has three variants depending on how the operator prices picking labor:

Sub-modelLogicWhen to use
Per order (flat)One rate for the entire order, regardless of line countHomogeneous orders, usually one item per package
Per order + SKUBase rate per order + surcharge for each additional SKUMulti-line orders where SKUs sit in different locations
Per order + SKU + unitsBase + SKU surcharge + per-unit surchargeHighly varied orders, B2B with large baskets

In FulBill each client can have a different model selected:

Pick & Pack in FulBill — three billing models for order picking: per order, per SKU/unit, order + SKU + units

This really matters, because a warehouse worker’s effort on an order with 1 SKU (15 units) is different from an order with 5 SKUs (3 units each). A flat per-order rate hurts the operator in the second case.

Receiving — container, pallet, carton, per unit

Receiving is an area where the pricing unit depends on the form in which the goods arrive. A client importing from China → containers. A client stocking from local producers → pallets or cartons. A client with small SKUs → per unit.

Receiving in FulBill — pallet and carton billing, with distinction between homogeneous (single SKU) and heterogeneous (mix SKU) deliveries

In a receiving pricing structure, the concept of homogeneous vs. heterogeneous pallets also appears. A homogeneous pallet is a delivery with a single SKU — the warehouse worker unloads it and places it in the slot, conveyor-style work. A heterogeneous pallet is a mix of SKUs — each unit must be identified, sorted, and placed in the appropriate locations. That’s genuinely different work.

That’s why in FulBill pallets and cartons have two rates: one for a homogeneous unit (flat amount), the other for a heterogeneous one (rate for the first SKU + surcharge for each additional SKU on the same pallet/carton). Containers will soon follow the same model.

Returns — per return or return + SKU

Two variants: a flat rate per return regardless of line count, or a rate per return + surcharge per SKU. Same logic as pick&pack — warehouse work on a return with 1 SKU vs. 5 SKUs is genuinely different.

Returns in FulBill — two billing models: per return (flat rate) or return + SKU (with surcharge per item)

Courier shipping — pass-through or per-carrier rate

Shipping pricing almost always relies on negotiated courier rates — a fulfillment operator has genuinely cheaper rates than a single e-commerce store, because they aggregate volume from many clients. This is one of the concrete economic arguments for outsourcing.

Courier shipping in FulBill — per-carrier client pricing: GLS, InPost, parcel lockers with individual rates

The question to ask an operator isn’t “how much markup do you add” but “how transparently do you pass on the courier pricing”. Some operators add markup, some pass it 1:1. Both are fine, as long as the client knows in advance.

Per-client pricing — why “one price list for everyone” doesn’t work

One operator I spoke with recently told me something I now hear at least once a week: “as many clients as we have, that’s how many price lists we have”.

That sounds banal but has huge consequences. One client sells supplements (pick&pack per order, storage per location). Another sells furniture (per CBM, hybrid with logistics minimum). A third sells cosmetics in bulk volumes (subscription + variable with SLA). Each needs a different combination.

You can do this in Excel, but every new client means a new template, a new formula, a new field to fill in manually every month. An operator serving 8-15 clients on different models genuinely loses several hours to several working days per month on this. Data entry mistakes are common, discussions with the client about “where does this amount come from” are regular.

That’s why in FulBill each client has their own pricing structure, independent of other clients’ structures. You pick concrete models and units for them (client A: per CBM + pick&pack per order + return per unit; client B: per pallet location + pick&pack per order+SKU + return + SKU), enter the rates, and the system pulls operations daily from Baselinker or another source and prepares billing according to that client’s pricing. Each one has their own.

The most common traps in fulfillment pricing

Regardless of the chosen model, certain construction errors keep coming up in pricing structures. A list from my practice of talking to operators:

1. No returns line in the pricing. The operator picks the order, packs it, ships it — and forgets to charge for the return. In fashion, where returns are 20-40% of sales volume, that gap can absorb the entire margin from the client.

2. No weight tiers for international shipments. The client ships a 12 kg parcel to Germany, the operator charges a standard small-parcel rate. The courier charges more, the operator pays the difference out of pocket.

3. No price indexation. Contract signed 3 years ago, labor cost up 40%, energy cost up 30% — and the client still pays old rates. This bleeds the operator, but many are afraid to “raise the topic”.

4. No transparency on courier rates. The operator’s negotiated rates are genuinely better than what a single store gets — that’s clear and undisputed. The trap is elsewhere: the operator doesn’t show the client what a given label actually costs. The client doesn’t know whether they pay the negotiated rate 1:1 or with an operator markup. The markup itself isn’t the problem — the lack of transparency is.

5. No clear definition of “standard handling”. Every additional action (flyer, label, custom packaging) becomes a new line item on the invoice. The client didn’t know that adding a discount coupon to the parcel costs extra.

6. No long-term storage billing. Goods sit for 4 months, the client still pays the starting rate. The operator subsidizes warehouse space out of pocket. Industry standard is a 1.5-3× surcharge on the standard rate for stock sitting longer than 60-90 days.

How to choose a model for your business

Before signing a contract on a specific model, answer these questions about your clients:

  • How diverse are they in terms of vertical and product type?
  • Do they have seasonality or stable volume?
  • What’s the average shipment size?
  • Do you handle a lot of small SKU or a little large SKU?
  • What percentage of orders have returns?
  • Does the client ask about predictability or about the lowest cost?

Second list — questions worth asking the client before pricing:

  • How many orders per month do they ship and what’s the seasonality?
  • How many SKUs in their catalog and what’s the rotation?
  • What’s the average size and weight of a parcel?
  • What percentage of returns do they accept?
  • Do they want a predictable budget or the lowest total cost?
  • Which countries do they ship to?

After these two lists you have enough data to propose one of the five models — or, most often, a hybrid matched to the profile.

Q&A

Can I change the billing model mid-contract with a client? Yes, but it requires an addendum to the contract. It’s worth writing a clause into the contract about reviewing pricing every 12 months — that way changing the model becomes natural, not a crisis move.

Per pallet location or per CBM — which is cheaper for the client? Depends on the product mix. A client with palletizable goods and homogeneous SKUs — per pallet. A client with mixed SKUs, where pallets are often half-empty — per CBM (up to 40% cheaper according to Red Stag).

What are homogeneous and heterogeneous pallets? Homogeneous pallet — delivery with a single SKU, the warehouse worker unloads it conveyor-style. Heterogeneous pallet — mix of SKUs, each unit must be identified and sorted. That’s a genuinely different amount of work, which is why a good pricing structure uses two different rates.

Which model fits a small store (up to 300 orders per month)? Pay-as-you-go with a low subscription, or no subscription at all. A small store doesn’t need predictability, it needs a low entry barrier. A logistics minimum at this stage is a trap.

Which model fits a large B2B client with 5,000+ orders per month? Hybrid with a strong SLA component. The fixed fee covers a dedicated team, variable line items scale with volume, and KPIs guarantee quality.

Should every client have a different pricing structure? Yes, if their sales profiles differ. Out of 10 clients you usually have 3-4 archetypes (small fast-rotating, medium palletizable, large with bulky goods) and each archetype gets its own templated pricing structure.

Wrap-up

Five billing models, six pricing components, a dozen pricing units. Sounds complicated, but in practice most operators use a combination of two or three of these elements. The key isn’t inventing a complex pricing structure — it’s matching the model to the client type and applying it consistently.

If you run a fulfillment operation and feel your current client billing takes too much time or doesn’t feel reliable — write to support@fulbill.pl. I’d be happy to see if FulBill can make it easier.

More about the tool itself — fulbill.com.


About the author: Norbert Sobala. For six years I’ve been working with Baselinker — mainly with e-commerce stores, recently more and more with fulfillment operators. FulBill is my billing system for operators who want to get out of Excel.