Month end in the billing office
On the first working day of the month someone exports a stock-by-location report from the WMS, drops it into a spreadsheet that has grown tabs for every client, and starts counting. Full pallets on racking are easy. Then there is the client whose half pallets share a bay, the one billed by the cubic metre on shelving, the one charged per bin in the small parts area, and the one who had forty pallets of seasonal stock in bulk floor space for eleven days in the middle of the month.
The export only shows the stock on the day it was run. So the spreadsheet also carries notes like 'add 40 pallets from the 9th to the 20th', typed in from memory or from the goods-in log. Nobody fully trusts the result, and a day or two after the invoices go out one client queries the storage line and asks to see the working.
The WMS was never asked the right question
Most warehouse management systems are built to answer 'where is it now and how much is there'. Storage billing needs a different question answered: how much space did this client take up on each chargeable day, measured the way their contract says. Those are not the same, and the gap is filled by people.
| How the contract charges | What the billing actually needs |
|---|---|
| Per pallet per week | A count of occupied pallet locations at the agreed snapshot point, every week |
| Per pallet space, part pallets rounded up | Location-level data, not SKU quantity |
| Per cubic metre on shelving | Product dimensions that are actually filled in |
| Per bin or shelf location | Location types that are set up consistently |
| Minimum monthly storage charge | A comparison after the count, applied per client |
The real root cause is that nobody keeps a history. If the occupancy were captured every night, month end would be a sum. Without it, month end is reconstruction.
What hand-built storage invoices cost you
Undercharging is the quiet cost. Stock that came in and left within the month is easy to miss, and short-stay bulk pallets are exactly the work that took up space you could have sold. Overcharging is the loud one: a client finds an error, and from then on they check every line of every invoice.
There is also the dependency on one person. The billing spreadsheet usually has rules in it that only its author understands, and when they are on holiday the invoices wait. Late invoices mean late payment, and in a business that often pays agency labour weekly, that matters.
What we build to take the counting away
- A nightly snapshot: we read stock-by-location from your WMS through its API or a scheduled export (Mintsoft, Peoplevox, or a bespoke system all work this way) and store occupancy per client, per location type, per day.
- Contract rules as data: each client's storage terms, such as snapshot day, rounding, minimum charge, free periods for new stock, are held as settings rather than spreadsheet formulas.
- A draft storage charge per client for the period, built from the daily history rather than one end-of-month export.
- Checks before anything is sent: locations with stock but no client, clients whose occupancy jumped or fell sharply, products missing dimensions where the charge depends on volume.
- Output to your accounts package: draft invoices into Xero, QuickBooks or Sage through their APIs, with a backing schedule attached that shows the count by day or week.
- A review screen where your billing person approves, adjusts with a note, or holds a client's charge.
The backing schedule is the part clients notice. When a storage line is questioned, the answer is a report you can send, not an evening of rebuilding the spreadsheet.
Month end afterwards
Billing becomes a review of numbers that already exist. The person who used to count spends their time on the exceptions: the client whose stock doubled, the location that seems to belong to nobody. Short-stay pallets are charged because they were recorded on the nights they were there.
Account managers can also see occupancy trends during the month, which helps when a client is quietly filling more space than their contract assumed.
Is this what your billing looks like?
- Storage is calculated from one export taken at month end.
- Your spreadsheet has notes about stock that came and went mid-month.
- Different clients are charged per pallet, per bin and per cubic metre, and each needs its own tab.
- Clients regularly ask for the working behind the storage line.
- Invoices wait when the one person who understands the billing is away.