Blog · Procurement and supply chain · Logistics
Allocate transport, warehousing, and handling costs with documented activity drivers. Reconcile the result to the source cost pools and compare customers without confusing allocated cost with avoidable expense.
Logistics cost analysis assigns transportation, warehousing, and handling costs to the activities and customers that use them. Trace identifiable charges directly, allocate shared costs with documented drivers, and prove that the assigned costs equal the source pools. The result supports operating decisions only when the allocation basis remains visible.
Start with the question. A customer service review may cover outbound freight, finished-goods storage, and order handling. A site review may also include inbound transport and warehouse support. Put the chosen activities, site, period, and currency at the top of the workbook.
Separate operational reporting from accounting classification. The IRS guidance on inventory cost includes transportation and other acquisition charges in the cost of purchased merchandise. That matters because some logistics charges may be carried in inventory rather than appearing as current-period distribution expense. Have finance define the reporting population and any bridge to accounting; an allocation exercise should not silently change that policy.
Use a consistent service period and include applicable accruals and credits. If the ledger is the control, reconcile the selected cost accounts and adjustments to it before spreading any costs across customers.
Bring the freight invoice register, warehouse cost-center export, order register, and warehouse activity report. Preserve source document IDs so each amount can be traced back to its original record.
| Input | Useful fields | Purpose |
|---|---|---|
| Freight invoices | Shipment ID, customer, service date, signed amount | Trace transport charges directly |
| Warehouse costs | Site, period, account, amount | Build separate shared cost pools |
| Storage activity | Customer, site, pallet-days | Allocate storage costs |
| Handling activity | Customer, site, pick lines | Allocate handling costs |
| Orders | Customer, site, order ID, service date | Calculate cost per completed order |
Define the driver precisely. Pallet-days combine the number of occupied pallet positions with the days occupied. Pick lines count distinct order lines handled under an agreed rule. Returns, rework, and canceled orders need explicit treatment rather than disappearing from the population.
Use freight cost analysis to investigate transport invoices in greater detail. Do not spread a directly attributable freight charge through a shared pool as well.
Create a storage pool and a handling pool rather than allocating all warehouse expense by sales revenue. Revenue may bear little relationship to space occupied or work performed.
Customer share of a pool = Customer driver quantity / Total driver quantity
Allocated cost = Customer share × Pool cost
The federal contracting rules provide a useful statement of the allocation principle: FAR 31.203 calls for logical indirect-cost groupings and allocation bases reflecting benefits received. That rule governs its stated contracting context; here, the practical lesson is to document why each driver fits the activity.
Record the pool owner, included accounts, excluded costs, driver definition, source report, and effective period. If handling includes materially different activities, consider separate documented pools rather than assuming every pick consumes the same effort.
A US distributor analyzes one warehouse for September 2026. Its reconciled storage pool is $15,000 and its handling pool is $6,000. Customer-specific freight invoices total $12,000. The activity export contains these rows:
| Customer | Completed orders | Pallet-days | Pick lines | Direct freight (USD) |
|---|---|---|---|---|
| Alder Retail | 200 | 600 | 1,200 | 8,000 |
| Beacon Supply | 100 | 900 | 300 | 4,000 |
| Total | 300 | 1,500 | 1,500 | 12,000 |
Put the table in columns A:E, with customers in rows 2 and 3. Enter the storage pool in N2 and handling pool in N3. Calculate allocated storage in F2, allocated handling in G2, total logistics cost in H2, and cost per order in I2:
=C2/SUM($C$2:$C$3)*$N$2
=D2/SUM($D$2:$D$3)*$N$3
=SUM(E2:G2)
=IF(B2=0,"Check orders",H2/B2)
Fill down. These formulas produce:
| Customer | Freight (USD) | Allocated storage (USD) | Allocated handling (USD) | Logistics cost (USD) | Cost per order (USD) |
|---|---|---|---|---|---|
| Alder Retail | 8,000 | 6,000 | 4,800 | 18,800 | 94.00 |
| Beacon Supply | 4,000 | 9,000 | 1,200 | 14,200 | 142.00 |
| Total | 12,000 | 15,000 | 6,000 | 33,000 | 110.00 |
The portfolio cost per order is $33,000 / 300 = $110.00. Use the total cost divided by total orders, rather than an unweighted average of customer unit costs. Display unit costs to two decimal places while retaining unrounded values in calculations.
Storage allocations must sum to $15,000, handling allocations to $6,000, and all assigned costs to $33,000. The remaining balance should be zero:
=SUM(H2:H3)-(SUM(E2:E3)+$N$2+$N$3)
A separate weighted check rebuilds total cost from customer orders and unit costs. Google Sheets documents SUMPRODUCT as the sum of products of corresponding arrays:
=SUMPRODUCT(B2:B3,I2:I3)
This must return $33,000 when the unit costs retain their underlying precision. Covirage is not affiliated with Microsoft or Google.
Now change only Beacon's pick lines from 300 to 600, keeping the handling pool at $6,000. Total pick lines become 1,800. Alder receives $4,000 of handling cost and Beacon receives $2,000, so their total logistics costs become $18,000 and $15,000. The company still spends $33,000: the allocation changed, not the expense.
That distinction matters when evaluating the cost of keeping a long product tail. An allocated burden can identify service complexity, but a savings proposal needs evidence that resources or payments can actually be reduced.
The overall procurement spend analysis workflow helps review the supplier purchasing behind these pools. Keep that purchasing view separate from customer activity attribution.
Bring your cost-center export, freight invoices, customer activity file, and documented allocation drivers. Covirage maps the columns; its tools compute and check comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring a sample of your own data.
See Covirage for shipping and logistics teams for the supporting industry context.
Include the transport, storage, handling, and related support costs covered by the review's stated boundary. Separate inbound and outbound activity where useful. Finance should decide how inventory costs, accruals, and internal charges are treated so the operational analysis reconciles to its selected accounting population.
Choose a measurable activity that reasonably explains resource use. Pallet-days may suit storage, while pick lines or handling hours may suit fulfillment. A single driver rarely explains every warehouse activity. Record the rationale and check whether different service patterns require separate pools.
No. Logistics cost is one part of customer economics, and a shared cost allocation is not automatically avoidable expense. Compare the customer's revenue and other costs separately, then establish which logistics resources would actually change if the service or customer relationship changed.