The inventory holding cost formula is: holding cost rate = (capital + storage + service + risk costs) ÷ average inventory value × 100. Multiply that rate by your average stock value to get what you spend in a year to keep goods on the shelf. In Uganda, loans alone cost about 17% a year, so stock bought on credit nears the textbook figure before any rent.
Most guides stop at the formula and a dollar example. This one works it through in UGX for a real-sized shop and prices one slow carton by the month. It ends with where each input comes from in ArmPOS.
The formula and what goes into each part
Holding cost has four parts, and each one is measured over the same year as your average stock. "Carrying cost" means the same thing, and the formula does not change.
Holding cost rate (%) = (capital cost + storage cost + service cost + risk cost) ÷ average inventory value × 100
| Part | What goes in | Where the figure comes from |
|---|---|---|
| Capital cost | Interest on money borrowed to buy stock, or what your own cash would earn elsewhere | Average inventory value × your interest rate |
| Storage cost | The store room's rent, power for fridges and freezers, generator fuel during outages, security | Rent receipts, power bills, fuel records |
| Service cost | Insurance on stock, and staff time spent receiving, counting and arranging it | The insurance policy, the share of wages spent on stock |
| Risk cost | Goods that expired, broke, went missing or sold below cost | Damage records and stock count corrections |
| Average inventory value | (Opening stock value + closing stock value) ÷ 2, or the average of the 12 month-end values | Your stock valuation report |
Two more forms of the same formula answer the questions owners actually ask:
- Annual holding cost = average inventory value × holding cost rate.
- Holding cost per unit per month = unit cost × holding cost rate ÷ 12.
A worked example in UGX
For example, a mini-supermarket in Kampala starts the year with stock worth UGX 56,000,000 and ends it with UGX 64,000,000. Its average inventory value is UGX 60,000,000. The costs below are illustrative, not a real shop's.
| Cost line | Part | UGX a year |
|---|---|---|
| Interest on the money in stock: 60,000,000 × 17.32% | Capital | 10,392,000 |
| Store room rent, 500,000 a month | Storage | 6,000,000 |
| Power for fridges and freezers, plus generator fuel in outages, 150,000 a month | Storage | 1,800,000 |
| Insurance on stock | Service | 600,000 |
| Half of the store keeper's wage of 500,000 a month | Service | 3,000,000 |
| Expired and damaged goods taken out of stock | Risk | 1,200,000 |
| Shortages found at stock counts | Risk | 900,000 |
| Total holding cost | 23,892,000 |
Holding cost rate = 23,892,000 ÷ 60,000,000 × 100 = 39.8%. Every UGX 1,000 of stock on this shop's shelves costs about UGX 400 a year to keep there.
What one slow carton costs
A carton of cooking oil that cost the shop UGX 93,000 costs 93,000 × 39.8% ÷ 12, or about UGX 3,090, for each month it sits unsold. Over three months that is about UGX 9,260.
If the shop sells that carton for UGX 102,000, its margin is UGX 9,000. Three months on the shelf costs more than the whole margin, while a carton that sells within a week costs about UGX 710 to hold. Holding cost is why slow movers lose money even when their price looks right.
Why the 20-30% rule of thumb does not fit African shops
Most guides say holding costs run at 20% to 30% of inventory value a year. That range is a rule of thumb from American supply-chain practice, usually quoted without a study, and it assumes cheap money.
In Uganda, the weighted average rate on shilling loans was 17.32% in July 2026, according to the Ministry of Finance's Performance of the Economy report. In the example, capital alone is 17.3 points of the 39.8%. A shop that borrows to stock up passes the rule of thumb before it pays a shilling of rent.
Use your own rate: the interest on your stock loan or overdraft. If you paid cash, use what that cash would earn on a fixed deposit. A shop in Kenya or Nigeria runs the same arithmetic with its own bank's rate.
Four mistakes that make the number wrong
- Dividing by sales or purchases. The formula divides by average inventory value. Dividing the example's UGX 23,892,000 by a year's sales of, say, UGX 300,000,000 gives 8%, a comforting figure that measures nothing.
- Counting the whole rent and wage bill. Only the share that serves stock counts: the store room, not the sales floor, and the hours spent on stock, not on the till.
- Leaving out capital because you paid cash. Your own money still has a cost. It could have repaid a loan or earned interest.
- Calling expiry "depreciation". Stock does not depreciate the way a fridge does. It expires, breaks or is written down, and all of that belongs in the risk line.
Holding costs stay out of your stock's value
Holding cost is a management figure, not an accounting entry. In your books, storage costs are expenses of the month they arise, and they are never added to the value of the goods.
IFRS for SMEs lists storage costs among the costs excluded from inventory in paragraph 13.13. Its own example says it plainly: rent for a warehouse of finished goods "is not included in the cost of inventory" (IFRS Foundation, Module 13).
So do not add the store room's rent to a product's cost. The full list of what does go in is in our guide to inventory valuation methods.
How to cut holding cost without running out
Cut stock that does not move, not stock that sells. Every lever below lowers the average inventory value or the risk line without emptying a shelf customers use.
- Find what sits. Sort stock by age and clear what has not moved in 90 days with a discount or a bundle. See dead stock.
- Order fast movers smaller and more often when the supplier delivers weekly. The economic order quantity uses your holding cost to find the order size.
- Reorder at a level, not in a panic. A reorder point stops the double orders that bloat stock. See how to avoid overstocking and stockouts.
- Move before you buy. If one branch has too much of a product and another has none, transfer it instead of ordering more.
- Sell the oldest batch first, so expiry stops feeding the risk line.
Where each number comes from in ArmPOS
ArmPOS records the inputs as you buy, sell and count, so the formula takes minutes instead of a weekend. A POS that also tracks stock does this; the difference is set out in POS vs inventory management system.
- Average inventory value. Reports › Inventory Valuation totals each product's ASSET VALUE. Note the total at the start and at the end of the period.
- Storage and service costs. Record each expense in its own category, such as rent, electricity or the guard. Reports › Expense Report totals them by category. Expenses sit under Accounting, which comes with some plans only.
- Risk costs. The damages list keeps every broken or spoiled item with its note. The Stock Adjustment Report totals what your count corrections removed, with each adjustment's cost, and the Expiry Report values batches near or past expiry.
- Where the money sits. The Stock Aging Report sorts what you hold into up to 30 days, 30 to 60, 60 to 90 and over 90. The Dead Stock Report lists products that have not moved in the last 30, 60 or 90 days.
- Reorder on time. Set a Stock Alert on each product you reorder, and check Product Quantity Alerts each day. You can also get low stock alerts on your phone or by email.
- Move stock between branches. A transfer moves stock from one warehouse to another once someone with permission approves it.
Frequently asked questions
What is the formula for inventory holding cost?
Holding cost rate = (capital + storage + service + risk costs) ÷ average inventory value × 100. The annual holding cost is the average inventory value multiplied by that rate.
Is holding cost the same as carrying cost?
Yes. Both names describe the cost of keeping unsold stock for a period, and both use the same formula.
What is a good inventory holding cost percentage?
There is no universal figure, because the capital line depends on your interest rate. Track your own rate each quarter and aim to bring it down. A Ugandan shop that borrows to buy stock starts at about 17% before rent.
How do you calculate holding cost per unit?
Multiply the unit's cost by your holding cost rate and divide by 12 for a month. At 39.8%, a UGX 93,000 carton costs about UGX 3,090 a month to hold.
Is holding cost added to the value of inventory?
No. Under IFRS, storage costs are expenses of the period, and the capital line is interest or a cost you never book. None of it enters the stock's value.
Want your stock value and your stock's age without a spreadsheet? Create a free ArmPOS account, add your products with their cost and opening stock, and record your next delivery as a purchase. The Starter plan is free and needs no card.