Storage Billing
What this does
Storage billing charges customers for the space their inventory takes up in the warehouse. Teamship can calculate storage automatically on a schedule and create an automated storage transaction, which then appears in Outstanding Transactions and can be rolled into an invoice.
You decide:
- How often a storage transaction is generated (monthly, bi-weekly, weekly or anniversary)
- How often usage is measured (monthly or daily)
- What the customer is charged for (pallets, pallet equivalents, CBM, cubic feet or square feet)
- How the charge is calculated (flat rate, split month, pro-rated, peak storage or threshold-based)
Storage that falls outside the automated rules can still be billed with a Storage Charge in Manual Charges.
When to use
- A customer pays a fixed rate per pallet per month: Pallet + Flat Rate
- A customer pays for the busiest day of the period, not the average: Pallet + Peak Storage
- Pallets come in and out mid-month and you want to charge less for short stays: Split Month or Pro-rated
- Partial pallets are spread over many LPNs and the customer disputes paying for each one: Pallet Equivalents
- Small-parcel inventory billed by volume: CBM or Cubic Foot
- A customer rents a fixed area of the warehouse: Square Foot
Where storage billing is set up
Storage billing is configured in two places:
| Level | Where | Applies to |
|---|---|---|
| Warehouse | Warehouse detail page, storage section | The warehouse default. Inherited by new customers, and by existing customers when the warehouse is first assigned to them. Basic customers always use the warehouse settings. |
| Customer | Customer user detail page, Pricing & billing section for that warehouse | Enterprise customers. Overrides the warehouse default for that customer and warehouse. |
On both pages:
- Turn on Auto-generate storage billing.
- Click Set Storage Billing Preferences (or Edit Storage Billing Preferences if already set). The billing wizard opens.
- Complete the three steps, review the Preview, and save.
You can go back to any step before saving. If you close the wizard part-way through, Teamship warns that your entries will be lost.
⚠️ A warehouse or customer cannot be created with Auto-generate storage billing turned on unless storage billing preferences have been saved.
If you turn Auto-generate storage billing off and back on, the previously saved preferences are restored; the wizard does not reopen.
The billing wizard
Step 1: Transaction generation frequency
How often a storage transaction is created, and the date or day it starts from.
| Option | Behaviour |
|---|---|
| Monthly | One transaction per month on the storage charge date |
| Bi-weekly | One transaction every two weeks on the selected day |
| Weekly | One transaction every week on the selected day |
| Anniversary | One transaction per cycle of a set number of days (for example every 7, 15 or 21 days) |
Step 2: Charge calculation frequency
How often usage is measured.
- Monthly — usage is counted when the transaction runs.
- Daily — Teamship records the customer's active pallets every day and uses the daily counts. Required for Pro-rated and Peak Storage.
Step 3: Billing rules
- What are you charging the customer for? — Pallets, CBM, Cubic Foot or Square Foot. For pallets, choose whether to charge on Actual Pallets or Pallet Equivalents.
- How should we calculate charges based on usage? — the calculation method (see below).
- Configuration — the rates. Each rate has a GL code (service item), a 3PL price and, where 4PL applies, a 4PL price.
Step 3 also holds Minimum Storage and First Storage where the method supports them.
Options that don't fit the frequencies chosen in steps 1 and 2 are disabled, with a tooltip explaining why.
Supported combinations
| Charge unit | Calculation method | Transaction frequency (step 1) | Calculation frequency (step 2) |
|---|---|---|---|
| Pallets / Pallet Equivalents | Flat Rate | Monthly, Bi-weekly, Weekly, Anniversary | Monthly |
| Pallets / Pallet Equivalents | Peak Storage | Monthly, Bi-weekly, Weekly | Daily |
| Pallets | Split Month | Monthly | Monthly |
| Pallets | Pro-rated | Monthly | Daily |
| CBM | Flat Rate | Monthly | Monthly |
| Cubic Foot | Threshold-Based | Monthly | Monthly |
| Square Foot | Flat amount | Monthly | Monthly |
Pricing methods
Pallet flat rate
Set a rate for each pallet storage type (for example standard or oversized) and mark one type as the inbound default. Every active pallet of the customer in the warehouse is charged the rate of its storage type.
Each pallet (LPN) carries its own storage type and storage charge:
- New pallets receive the default storage charge when received.
- If the storage configuration changes (for example from CBM to pallets), the default charge is applied automatically to the customer's existing pallets.
- A pallet charge can be added or removed at any time, except the default. Pallets using a removed charge are moved to the default charge.
- The storage type of a pallet can be changed from LPN Lookup.
Split month
Charges a pallet one amount if it stays in the warehouse up to a set number of days, and a different amount if it stays longer. Rates are set per pallet type.
- The storage duration counts both the day the pallet came in and the day it shipped.
- Pallets still in the warehouse from a previous month fall into the longer-stay rate, because storage resets every month.
- When a customer switches from flat rate to split month, tiers are created automatically from the existing pallet types, with their charges copied. You can then change them.
Example: up to 15 days costs $15 per standard pallet, otherwise $31. Five standard pallets received on the 4th and shipped on the 16th are charged 5 × $15.
Pro-rated
Charges each pallet for the days it was actually in the warehouse. You enter a monthly base price per pallet type; Teamship divides it by the number of days in the month being billed to get a daily rate, then charges the daily rate for each active pallet on each day.
Example: base price $25.50 in a 31-day month gives about $0.82 per pallet per day. Two pallets on day 1 and five on day 2 are charged 0.82 × 2 plus 0.82 × 5, and so on through the month.
Peak storage
Charges for the highest number of active pallets on any single day in the billing period, even if that level lasted only a short time.
Example: a customer's pallets over a month are 50, 80, 120 and 60. At $20 per pallet, the bill is 120 × $20 = $2,400.
- Teamship records active pallets every day.
- If two days tie for the peak, the first day is used.
- If a pallet type has no charge set up, it is charged at the default rate.
- The transaction quantity is the peak pallet count; the invoice backup lists the daily pallet counts and the peak storage date.
Pallet equivalents
Use this when partial pallets are spread across many LPNs. Instead of counting physical LPNs, Teamship converts each product's stock into pallet equivalents and charges on that count.
Set the conversion on each product (not kits) in the [UOM] per Pallet Equivalent field, for example "Cases per Pallet Equivalent". It can be set on the product page or with the bulk product update template. If left blank, all stock of that product counts as one pallet equivalent.
When storage runs, Teamship:
- Checks the customer's available stock for each product across all locations.
- Divides it by the product's pallet equivalent value and rounds up partial pallet equivalents.
- Adds up the pallet equivalents across all products.
- Applies the single rate per pallet equivalent and creates the transaction.
Example: a SKU has 61 cases spread across 11 LPNs and 1 pallet equivalent = 30 cases. Storage is charged on 3 pallet equivalents, not 11 pallets.
With Peak Storage, Teamship records the pallet equivalent count each day and charges the highest.
The transaction shows Pallet Equivalent, the rate, the quantity and the total. The invoice backup lists each product's name, SKU, total stock and pallet equivalent count (or, for peak storage, the peak date and count).
CBM
Charges by cubic metres. You set the CBM per LPN and the rate. Teamship:
- Calculates each product's volume in cubic metres from its length, width and height in inches, times the carton units in stock.
- Adds up the volume of all products.
- Divides by the CBM per LPN and rounds up to the next whole number.
- Multiplies by the storage rate.
Cubic foot (threshold-based)
Charges per unit based on each SKU's volume in cubic feet (length × width × height in inches, divided by 1,728, rounded to two decimals). You set:
- A cubic-foot threshold
- A flat per-unit charge for units below the threshold
- A per-cubic-foot rate for units at or above it
Example: threshold 0.05 cu ft, $0.10 per unit below it, otherwise $2 per cu ft.
- SKU 1: 2 × 6.5 × 6.5 in = 0.05 cu ft, 100 units → 0.05 × $2 × 100 = $10
- SKU 2: 2 × 2 × 8 in = 0.02 cu ft, 20 units → $0.10 × 20 = $2
All of the customer's SKUs are summed into one monthly transaction, with each product and its stock listed.
Square foot
Charges a fixed amount for a utilized area (for example 10,000 sq ft). The transaction line reads like "Storage - 10,000 Sq.Ft" with a quantity of 1. There is no invoice backup.
When square-foot billing is used, inventory orders for that warehouse don't show storage charges on their location / LPN tab.
Minimum storage
For Pallet Flat Rate and Pallet Peak Storage (all frequencies, including pallet equivalents), you can set a Minimum Storage amount. If the calculated storage for the period is lower, Teamship adds a Minimum Storage line for the difference.
Example: bi-weekly flat rate, small pallets $10 and medium $20, five of each, minimum $500. The transaction has three lines: small pallets $50, medium pallets $100, and Minimum Storage $350. The backup is unchanged.
Recurring charges are not counted toward the minimum.
Minimum charge on auxiliary charges
Separately, each auxiliary charge on the warehouse and customer pages has a Minimum charge column. It sets a floor price: if quantity × price is lower, the minimum is charged instead, and the order shows it as minimum applied. It applies to every inbound and outbound order type where the charge is used. For 4PL customers, it is compared against (3PL + 4PL price) × quantity. Customers can see this column but cannot edit it.
First storage
First Storage (a checkbox in step 3, off by default) charges storage on pallets the first time they arrive, then on the normal schedule afterwards. It is available for Pallet Flat Rate at every frequency, at warehouse and customer level.
When it is on:
- The inventory order shows a First storage section listing storage charges with quantity and rate.
- The quantity starts at 0 and goes up or down as pallets are added to or removed from the order.
- When the order is closed, two transactions are created: the inventory order charges and an automated storage transaction.
With pallet equivalents, the first storage quantity is calculated from the received SKUs and their pallet equivalent values.
No first storage transaction is created if Auto-generate storage billing is off.
Automated storage transactions
On each scheduled date, Teamship creates one storage transaction per customer and warehouse. It:
- Uses the rates saved at the time; changing charges later does not change transactions or invoices already created.
- Includes recurring charges set to appear on storage invoices (Always charges every time, Once charges only on the next one).
- Runs on the organization's timezone (see Organization Settings).
- Has an invoice backup with the detail behind the quantity (pallets, products or daily counts, depending on the method).
Credit notes cannot be created for automated storage transactions.
Crossdock pallets are skipped by automated storage billing (see Crossdock).
Roles and permissions
| Role | Access |
|---|---|
| Admin, organization admin, warehouse manager | Set and edit storage billing on warehouse and customer pages |
| Customer (basic, enterprise, parent and child) | View only. Customers see the combined 3PL + 4PL price and do not see GL codes. |
Common issues
| Issue | Likely cause |
|---|---|
| Cannot save a new warehouse or customer | Auto-generate storage billing is on but preferences were not saved in the wizard |
| An option in step 3 is greyed out | It isn't supported with the frequencies chosen in steps 1 and 2 (for example Split Month with CBM, or Pro-rated without Daily) |
| No storage transaction was created | Auto-generate storage billing is off for that customer and warehouse, or the scheduled date hasn't arrived in the organization's timezone |
| Pallet charged at the wrong rate | The LPN has a different storage type or charge; check and change it in LPN Lookup |
| Pallet equivalent count looks too high | The product has no per Pallet Equivalent value, so its whole stock counts as one, or partial equivalents are being rounded up per product |
| Minimum Storage line on the invoice | Calculated storage was below the minimum; the line is the difference |
| Rate change didn't affect last month's invoice | Existing transactions keep the rates they were created with |
| Storage charges missing on an inventory order | The customer is billed by square foot for that warehouse |