A 3PL operator in western Poland. 9 clients, 380 orders per month, 600 sqm warehouse. Declared operating margin: 22%. After our audit, the real margin came out at 11%. The other half was leaking through billing mistakes that nobody saw, because individually each one looked trivial.
We collected the five most common ones. Each with numbers from the Polish 3PL market. Together they can cost 30 to 80 thousand PLN per year.
Mistake 1. You don’t account for admin time
Billing 8–10 clients takes 15 to 25 hours per month. Pulling reports from Base, assembling them in Excel, checking line items, answering client questions like “why is this invoice higher than the previous one”.
Simple math. Polish admin labor cost with overhead: 45–70 PLN per hour. 20 hours × 60 PLN = 1,200 PLN per month. Yearly: 14,400 PLN.
That money sits nowhere in your pricing. The client doesn’t know he’s paying for billing labor. You treat it as “overhead that just exists”. It’s a real cost line.
What to do. Either add 8–12% to every invoice as a billing handling fee. Or automate the process so the cost drops to zero. Pick one, but pick.
Mistake 2. You don’t bill for returns
A fashion e-commerce client has a 20% return rate. With 150 orders per month, that’s 30 returns. Each return means: courier intake, item check, condition assessment, decision, Base stock update.
Average handling time per return: 8–14 minutes. Real cost: 4–8 PLN per unit.
Most operators have no separate line for returns. “Included in the rate” or “not many of them, not worth tracking separately”.
30 returns × 6 PLN = 180 PLN per month. Yearly: 2,160 PLN on one client. Multiply by every fashion or electronics client you have.
What to do. Add a separate “return handling” line to your pricing. 4–6 PLN for sealed packages, 8–12 PLN for returns requiring assessment. Two rates in the price list, the client accepts the logic because it’s obvious.
Mistake 3. Same rates for special zones
Your warehouse has a cold storage section, a safe, a hazmat zone, or a dedicated bay for oversize goods. You charge the same rate as for standard pallet positions.
Real operating cost is 3–4x higher for cold storage: energy, certifications, insurance, dedicated procedures. Safe storage: 2–3x. Oversize with crane access: 2x.
Concrete example. Standard rate 1.20 PLN/CBM/day. The client has 30 CBM in cold storage. Real cold-storage cost for you: 0.80 PLN/CBM/day. After cost, 0.40 PLN profit instead of the typical 1.00 PLN.
Loss: 0.60 PLN × 30 CBM × 30 days = 540 PLN per month. Yearly: 6,480 PLN on a single cold-storage client.
What to do. Add a 50–100% premium over the base rate for every special zone. Put it in the new-client pricing immediately. Renegotiate with existing clients at the next contract renewal. The argument is hard data: real energy and insurance costs.
Mistake 4. No price escalation
Control question. When did you last raise prices for clients? If the answer is “I don’t remember” or “2022”, you have a problem.
Cumulative inflation in Poland 2021–2024: roughly 30%. Labor costs: +25–40%. Energy: +60–100% depending on contract. Warehouse rent in major hubs: +20–35%.
If your rates haven’t changed since 2022, your real margin shrunk by 15–25 percentage points. You’re earning 20% less today on the same client you’ve served longer and know better.
What to do. Put an escalation clause in every new contract: annual CPI indexation, minimum 3%, maximum 8%. With existing clients, run a renegotiation 2 months in advance. Show numbers: “Labor costs rose 22% since contract signing. I’m proposing a 12% rate adjustment”.
90% accept. The remaining 10% are clients you should probably let go anyway.
Mistake 5. No annual pricing audit
A client started at 5 pallets and 200 orders per month. Two years later, 15 pallets and 600 orders. Same pricing because nobody updated it.
The client tripled. Your revenue from him grew 1.8x (fewer ad-hoc orders, more standard ones, more volume discounts). Margin shrank. Pricing doesn’t reflect the new scale of the relationship.
What to do. Once a year, ideally in December, build a table: each client, his volume 12 months ago vs today, monthly revenue, operating cost per order. Three columns: profitable / borderline / underwater.
Different decision for each category. Profitable: leave alone. Borderline: renegotiate. Underwater: renegotiate with a hard number, or part ways.
Loss math for a typical micro-3PL
Operator with 8 clients, 300 orders per month, no billing automation:
| Mistake | Monthly loss | Yearly loss |
|---|---|---|
| Admin time (20 h × 60 PLN) | 1,200 PLN | 14,400 PLN |
| Unbilled returns (80 × 6 PLN) | 480 PLN | 5,760 PLN |
| Underpriced premium zones (1 cold-storage client) | 400 PLN | 4,800 PLN |
| No escalation (2 years × 10% cumulative) | 800 PLN | 9,600 PLN |
| No audit (2 underwater clients) | 600 PLN | 7,200 PLN |
| Total | 3,480 PLN | 41,760 PLN |
Over 40 thousand PLN per year. Without raising market rates, without new contracts, without growing volume. Just by fixing five existing mistakes.
Where to start
Pick one mistake. Best candidate: number 2 (returns), because it’s fastest to deploy and least controversial for clients. Do it this week. Next audit: in a month.
FulBill automates four out of five lines in that table. Admin time drops to zero, returns get billed from Base data, premium per zone is configurable per client, escalation reminders are baked in. See /features#billing or book a call.