On this page

Your Lekki shop has 50 bottles of tea tree oil sitting on the shelf. Your Yaba branch ran out yesterday and a customer is asking for it. You call your Lekki staff: “Pack 20 bottles and send them to Yaba.”

The bottles arrive. Yaba starts selling. But your inventory records now tell a different story. Lekki still shows 50 bottles because nobody updated the system. Yaba’s count doesn’t include the 20 that just came in. You’ve moved physical goods, but digitally, they don’t exist where they actually are.

By month-end, your stock count at both locations is wrong. Your cost of goods sold is inaccurate because the cost basis didn’t travel with the bottles. And if any bottles went missing in transit, you have no way to prove it happened.

Why “just send it over” doesn’t work

When you informally move stock between branches, several things break at once.

Your inventory counts go wrong at both locations. Lekki shows stock it no longer has. Yaba has stock it doesn’t know about. Every report, every reorder decision, every stock count after that point is built on wrong numbers.

Your cost of goods sold gets thrown off too. That tea tree oil was bought at NGN2,800 per bottle. Without a formal transfer, Yaba doesn’t know the original cost. When they sell it, the profit calculation is either missing the cost or using a made-up number.

And you lose the audit trail. If 20 bottles left Lekki and 18 arrived in Yaba, you need to prove the discrepancy happened during transit. Without a transfer record, staff at both ends can deny knowledge. You’re stuck guessing, same as always.

Informal transfers are a leading cause of inventory losses that shop owners don’t notice until month-end.

What a proper stock transfer looks like

A proper transfer is a recorded event, not a verbal instruction.

You start by picking the source location, let say Lekki, in this case. Then you choose the specific products and batches. Not just “20 bottles of tea tree oil,” but which batch. If Lekki has two batches, one bought at NGN2,800/bottle in January and another at NGN3,200/bottle in March, you pick which one to move. This matters for cost and expiry tracking.

You specify the quantity. The system checks that the source batch actually has that many available, you can’t transfer 20 from a batch of 15. Then you select the destination (Yaba) and add a note: “Customer request at Yaba branch” or “Rebalancing before weekend rush.” These notes save you when you’re reviewing transfers three months from now and can’t remember why you moved 50 units of anything.

When you confirm, the stock is deducted from the source batch at Lekki and added at Yaba, either merged into an existing batch or created as a new one. The original cost per unit travels with the goods such as NGN2,800/bottle at Lekki stays NGN2,800/bottle at Yaba. A unique transfer number is assigned, and the whole thing is timestamped.

The paper trail you need

Every transfer creates two linked stock movements: a TRANSFER_OUT at the source and a TRANSFER_IN at the destination. Both record what moved, when, and from which batch.

If you’re reviewing Lekki’s stock movements for the month, you’ll see “TRANSFER_OUT: 20 × Tea Tree Oil to Yaba” with the exact date and time. Pull up Yaba’s side and the matching TRANSFER_IN is right there.

Each transfer gets a unique number. You can filter your history by source, destination, status, or date range. Need to know everything that moved from Lekki to Yaba in March? One filter.

When someone says “I sent 20 but only 18 arrived,” you can actually resolve it instead of watching your staff point fingers.

Batch-level accuracy matters

Here’s where sloppy transfers get expensive.

You have two batches of shea butter at your Surulere branch:

BatchQuantityCost per KgExpiry
Batch A15 kgNGN3,500June 2026
Batch B25 kgNGN4,200October 2026

Your Ikeja branch needs 10 kg. Which batch do you transfer?

If you transfer from Batch A, Ikeja receives stock at NGN3,500/kg. Their profit margin on each sale will be higher. And since Batch A expires sooner, you’ve moved it to the location where it’ll sell faster, smart right?.

If you transfer from Batch B, Ikeja receives stock at NGN4,200/kg with a longer shelf life. Good for slow-moving locations.

The point is: you choose. The cost and expiry date travel with the goods. When Ikeja sells that shea butter, their profit calculation uses the actual cost it was purchased at, not a guess or an average.

Without batch-level transfers, you’d move “10 kg of shea butter” with no record of which cost batch it came from. Your COGS at the destination would be wrong. Your expiry tracking would be wrong. And the money you think you’re making on each sale would be wrong too.

Common transfer mistakes

Sending goods close to expiry from one branch to another doesn’t make the problem disappear. The expiry date follows the batch. If it’s going to expire in two weeks, it’s going to expire in two weeks regardless of which shelf it sits on. Don’t use transfers to hide losses.

If the source batch has 15 units and you try to transfer 20, you’ll end up with a negative stock number or a failed transfer. Check availability before you move anything.

Transfers without notes are impossible to review later. “Why did we move 50 units of glycerine to Yaba on March 12th?” Nobody remembers three months from now. Write the reason when you make the transfer.

One more thing: if you’re constantly transferring the same products from one location to another, that’s not a transfer problem. That’s an ordering problem. That branch should be ordering more from the supplier directly. Review your transfer history monthly and you’ll spot the pattern fast.

And if a transfer record says 20 units left and your next stock count shows 18, investigate immediately while memories are fresh. Don’t wait for the quarterly count.

Move stock properly, once

Moving products between branches should leave a record on both sides. Not a phone call. Not a WhatsApp voice note.

Mayloo handles stock transfers between locations with full batch tracking. Pick the source, choose batches and quantities, select the destination. Cost basis follows the goods. Paired stock movements are recorded. Transfer history is filterable by location, status, and date.

If you’re managing multiple locations, proper stock transfers are the difference between knowing your numbers and guessing.

Try Mayloo Free →

On this page