Stock leaves with a rider, cash comes back later, and the gap between those events is where money disappears. The handover sheet and daily close that shut it.
Sailo team15 min read
Four parcels went out with Kevin on Tuesday. Three came back as cash. One came back as a story about a customer who wasn't there, and the parcel didn't come back at all.
Nothing in that sentence is unusual and none of it is necessarily theft. It's what happens when stock leaves your hands at one moment and money arrives at another, with nothing written down in between. The fix is three things and they're all boring: a handover record you both sign before the rider leaves, a rule that every parcel sits in exactly one of four states, and a ten-minute close at the end of every single day. Do those and a KSh 2,400 dish rack cannot quietly become a story.
This is the part of selling that nobody writes about, because it isn't a feature anyone can sell you. It's a habit.
Between "stock left my house" and "money is in my M-Pesa" there's an interval. It can be four hours or it can be nine days. During that interval you own neither the goods nor the cash, and if you have no record of what's in flight, you cannot tell the difference between a rider who hasn't remitted yet and a rider who isn't going to.
That's the whole problem. On day one those two look identical.
Every control in this article exists to shorten that interval or to make what's inside it visible. Nothing else matters.
Write these on a piece of paper and stick it where you pack.
A parcel in two states in your head is a parcel you will lose. If you think something is "sort of delivered, he said he'd send the money", it's in state 3, and it stays in state 3, visible, on a list, until money lands. It does not get quietly filed as done because you trust him.
The list of everything in states 2 and 3 is the only number that matters at the end of a day. If it's shrinking, you're fine. If it's growing week on week, you have a problem whether or not anyone has stolen anything.
A notebook works. A WhatsApp message works. A shared spreadsheet works. What doesn't work is your memory, and what half-works is a photo of a pile of parcels.
The columns:
| Column | Why it's there |
|---|---|
| Date and time out | Fixes the start of the clock |
| Order reference | So it matches your order list, not just a name |
| Buyer name and phone | The rider needs it and so does your follow-up |
| Area | Because disputes cluster by area |
| Number of parcels | Two items for one buyer is two parcels, count them separately |
| Amount to collect | Written per parcel, never as a total |
| Payment method expected | Cash, or till, or already paid |
| Rider name and phone | Obvious, and constantly missing |
| Signature or photo | The rider signs, or you photograph him holding the parcels |
| Time back | For the ones that return |
Fill it in before he leaves, photograph it, and send the photo to him in the same chat you use for everything else. Now you both have the same document with the same timestamp, and neither of you can produce a different version of Tuesday.
The photograph matters more than the signature. A signature proves he was there. A photograph of the sheet, sent at 9:14am, proves what the sheet said at 9:14am.
Here is the single most useful physical habit in this entire process, and it takes forty seconds.
Count the parcels into the rider's hands out loud, one at a time, and read the amount to collect for each one aloud as you do it. Not to be theatrical. Because almost every dispute you'll have later is about a parcel he says he never took, not about money he says he never got, and there is no way to settle that argument three days later.
Do it the same way every time and the rider starts doing it with you. Within a month it's just how the handover goes, and the conversations about missing parcels stop entirely.
Ranked by how often it happens, which is not the order most sellers assume.
Look at that list again. Five of the seven are solved by moving the money so the rider never holds it.
This is the change that fixes the most for the least effort, and most sellers arrive at it a year late.
Print your M-Pesa till number on the parcel, on the invoice inside, and put it in the delivery notes the buyer reads before ordering. The rider's job becomes handing over goods and confirming a payment message, not carrying money.
Why it works here specifically:
The rule to give your riders: cash is the exception, till is the default. If a buyer insists on cash, the rider takes it, sends you a message with the order reference and the amount before he leaves the spot, and remits the same day. Not tomorrow. That evening.
You'll never get to zero cash and you shouldn't try. Getting from 90% cash to 25% cash removes three quarters of the exposure and most of the daily arithmetic.
Ten minutes. Every day. This is the article.
Open the handover sheet for today and put every line in one of three columns: money in, still out, came back. Then match each "money in" against an actual M-Pesa message or a physical note in your hand. Not against what the rider said. Against the money.
| Order | Buyer | Amount | Rider | Status at 7pm |
|---|---|---|---|---|
| 1184 | Achieng, Umoja | KSh 2,400 | Kevin | Till payment received 11:42 |
| 1185 | Otieno, Kasarani | KSh 1,650 | Kevin | Cash, remitted 4:10pm |
| 1186 | Njeri, Roysambu | KSh 850 | Kevin | Delivered, cash not yet remitted |
| 1187 | Mutiso, Donholm | KSh 2,400 | Kevin | Not delivered, parcel returned |
| 1188 | Wafula, Umoja | KSh 1,200 | Grace | Not delivered, no answer, parcel still with rider |
Two lines on that sheet need action tonight, not on Friday. Line 1186 is money you're owed today. Line 1188 is stock in someone else's bag overnight, which is fine once and a pattern you should notice twice.
The discipline is that the close happens whether or not you feel like it, and it happens against the money rather than the conversation. A rider saying "everything went well" is not a reconciliation. It's a mood.
One email on pricing, photographs, delivery and getting paid. No pitch, no filler.
This is the part almost every seller gets wrong, and it costs more than any theft.
A rider paid only on successful drops will mark your hardest addresses "customer unavailable" before he reaches the gate, because trying costs him money. He isn't being dishonest. He's responding correctly to how you've paid him.
So build the payment structure like this:
The failed-attempt fee feels like paying for failure. What you're actually buying is the truth about which addresses are hard, and a rider who rings three times instead of once.
Never make a rider's pay a percentage of the cash he collects. The moment his income depends on the amount, the amount becomes negotiable at the door.
Riders will ask for a float, for fare or for change. Handle it as a separate ledger, never mixed with the day's collections.
If you advance KSh 500 for fare, write it as an advance, and settle it at the end of the week as its own line. The instant a float gets netted off against collections, you lose the ability to tell whether a shortfall is a debt, an expense, or a missing payment. That's the exact confusion that lets KSh 6,000 disappear over a quarter with nobody able to say when.
The other rule, and it's the one that actually protects the business:
No new stock leaves until the last handover is closed.
It feels harsh for about a week. Then it becomes the most normal thing in the world, and riders who intend to pay have no problem with it at all.
Same day, calm, specific. Not a lecture, a number and a question.
Kevin, today's sheet: 1186 Njeri, KSh 850, delivered but not received here. Can you send it tonight?
Then follow a fixed escalation so you're not making a new decision each time:
| How long it's been | What you do |
|---|---|
| Same day | One message with the order number and the amount |
| Day 2 | Call. Not a text. Ask what happened to that specific parcel |
| Day 3 | No new parcels go out with him until it's settled |
| Day 7 | Write it off, stop using him, and tell him plainly why |
Do not carry a shortfall for a month while continuing to send parcels. That's how a KSh 850 problem becomes a KSh 12,000 problem, and it's always the seller's decision that made it grow, not the rider's.
Keep a note per rider, month by month: parcels carried, failed drops, shortfalls, days to remit. Three months of that tells you more than any amount of instinct, and it'll usually show you that your feeling about who's reliable was wrong in one direction.
Wanjiru sells kitchenware out of a shop in Umoja: dish racks at KSh 2,400, plus smaller items from KSh 450 to KSh 1,800. Around 214 parcels a month across Umoja, Kasarani, Roysambu and Donholm, four regular riders, mostly cash on delivery.
Her March: KSh 389,000 of expected collections, KSh 382,200 actually received. A gap of KSh 6,800, which she noticed six weeks later while trying to work out why she couldn't afford a restock.
Where it was, once she reconstructed it:
| What happened | Amount |
|---|---|
| One dish rack marked refused, parcel never returned | KSh 2,400 |
| Three buyers paid a rider's personal M-Pesa, never forwarded | KSh 1,900 |
| Boda fares and a top-up deducted without telling her | KSh 1,600 |
| One buyer short-paid at the door and the rider accepted it | KSh 900 |
| Total | KSh 6,800 |
Not one of those was theft in a way she could name, and all of it was her money.
Four changes, in this order:
April: 231 parcels, 61% paid by till instead of cash. The gap was KSh 400, one buyer who genuinely rounded down and a rider who told her about it the same evening. Failed drops fell from 19 to 11.
The thing she hadn't expected: two of her four riders asked her to keep doing the morning sheet, because it settled an argument they'd had with her in February about a parcel neither side could prove.
The cash on delivery rail is free, Sailo takes nothing from it, and it gives you a free-text delivery notes field the buyer reads before ordering. That's where your till number and your "please have the exact amount ready" line go. Orders arrive with the item, the address and the total, move through new, confirmed, shipped, completed, cancelled and refunded, and sit unpaid until you mark them paid. The carrier and tracking fields on an order are a reasonable place to write a rider's name and phone number, since nothing else is using them.
Now the honest part, and it's a big one for this article. Sailo has no M-Pesa rail. Not Buy Goods, not Paybill, not Pochi la Biashara. Putting your till number in the bank transfer instructions or the COD notes works perfectly well, buyers pay it, and it is a workaround rather than a feature: Sailo cannot see that payment, cannot confirm it, and will never tell you it arrived. Only the Safaricom message on your phone can do that.
There's also no handover sheet, no rider record, no reconciliation report and no way to mark a parcel as "delivered but unpaid" as distinct from unpaid. Everything in this article is a notebook and a habit, and Sailo holds the order rather than the process. If your rider operation grows past a few hundred parcels a month you want a proper dispatch tool, and they exist here.
The reconciliation discipline itself is the same on every rail. If you'd rather see it applied to bank transfers, it's in how to know a bank transfer actually arrived, and the upstream question of cutting refusals before a parcel ever leaves is in cash on delivery for small sellers.
Write the columns from the table above into a notebook tonight. Fill one line per parcel tomorrow morning, photograph the page, and send it to the rider before he rides off.
Then at 7pm, sit down for ten minutes and put every line into money in, still out, or came back. Do that for two weeks without missing a day, and you'll know exactly where your money goes, which is more than most sellers twice your size can say.
If you're still arranging riders ad hoc each morning, sort that part out first: delivering locally without a courier covers zones, batching and what to agree before the first drop. And if your delivery pricing has never been checked against what the riders actually cost you, how to work out delivery charges does the arithmetic.
Written by
Sailo team
One link, your whole shop.
One email on pricing, photographs, delivery and getting paid. No pitch, no filler.
Sailo just gives it a front door — so people can browse, compare and see prices before they message you.
Get your linkFree while in beta · No card required