Order windows, spoilage maths, and how to price by approximate weight without arguing over 80 grams. Written for a Nairobi round, useful anywhere.
Sailo team12 min read
Two crates of tomatoes looked like a bargain on Wednesday. By Saturday you're making stew from the bottom layer.
Selling produce online works when you stop holding stock and start holding orders. Open an order window, close it, buy against what's already sold, deliver the same day, and publish the weight tolerance before anyone asks about it. A seller doing a Nairobi round can start on about KSh 8,000 of float and a boda number. The spoilage line is the entire business. Everything else is delivery.
That's the whole method. The rest of this is how each part goes wrong.
Almost every produce shop that fails does the same thing first. They buy what looks good at the market, photograph it, post it, and then try to sell it before it goes. That's a race you lose slowly. You're funding the inventory, carrying the risk, and discounting on day three.
Flip the order of operations. Buyers order first. You buy second.
That means a window, and the window has to be short enough that the customer still remembers ordering:
| Day | What happens |
|---|---|
| Sunday evening | Order window opens. Price list goes out. |
| Tuesday 9pm | Window closes. You now know you need 22kg of tomatoes and 40 bunches of sukuma. |
| Wednesday 5am | Market. You buy to the list plus a small buffer. |
| Wednesday 10am to 2pm | Wash where needed, weigh, pack, label with the customer's name. |
| Wednesday 2pm to 7pm | Delivery round. |
Two rounds a week beats a shop that's open every day, at this size. A Wednesday and a Saturday round means two market trips, two pack sessions, two delivery routes, and a predictable week. A shop that's always open means you're always holding something.
The buffer is the part people get wrong in both directions. Buy exactly to the list and one bruised crate leaves three customers short. Buy 40% over and you're a stock business again. Around 10 to 15% over on the hardy items and nothing extra on the leafy ones is roughly where experienced sellers land, because a spare kilo of potatoes keeps and a spare bunch of spinach does not.
Write this number down before you set a single price, because it's the number that decides whether you have a business.
Say you spend KSh 12,000 at Marikiti on a Wednesday. Suppose 8% of that never reaches a customer. Some got crushed under a crate on the boda. Some was sold to you slightly older than it looked at 5am under a bulb. Some sat in the sun during a long round. That's KSh 960 gone before you've paid for transport, bags or your own morning.
Now the part that surprises people. Produce loses weight just by existing. Leafy greens lose water fast in warm air, and a bunch that weighed 400g at the market can weigh noticeably less by the time it's on someone's kitchen counter that evening. Weigh at packing, not at buying, because the customer is weighing what arrives.
So your cost per delivered kilo is not what you paid per kilo. It's what you paid, divided by what actually gets delivered in sellable condition. If you paid KSh 100 a kilo and 8% is lost, your true cost is about KSh 109. Price off the wrong one of those two numbers on every item, every week, and you'll work very hard for very little and never know why.
Track it for four rounds. Write down what you bought, what you delivered, and what you threw out. Four weeks of that beats any advice in this article.
This is the specific thing that makes produce different from every other kind of online selling. Nobody argues about the weight of a t-shirt.
You have three options, and most good sellers use all three at once.
Sell by the piece or the bunch where you can. A bunch of sukuma wiki. A head of cabbage, small or large. Six avocados. Three lemons. No scale, no argument, and the customer knows exactly what's arriving. This should be as much of your list as possible.
Sell by a stated band, not a number. Not "1kg of tomatoes". Instead: Tomatoes, roughly 1kg (950g to 1.1kg). You've told the truth in advance, and you've made the variance part of the product rather than a mistake in the delivery.
Sell a fixed pack that you weigh and top up. Onion pack, 2kg minimum. You weigh at packing. If it lands at 1.94kg you add one more onion. You never go under the number you printed, ever, and you say so in the listing: we round in your favour.
That last line is worth more than it costs. Losing 60g of onion is nothing. Losing an argument about 60g of onion costs you the customer, the WhatsApp group they're in, and forty minutes of your evening.
Publish the tolerance before the sale and it's a spec. Explain it after the delivery and it's an excuse.
Two more rules that stop the rest of the arguments. Write the actual packed weight on the label with a marker, so the buyer can see you weighed it rather than guessed. And when something is genuinely short because the market was short, message before you deliver, not after: "Only got small avocados today, so I've put seven in instead of six, or I can drop it and refund KSh 120. Which?" Sent at 11am that's service. Discovered at the door it's a complaint.
For anything else you sell online, delivery is logistics. Here it's the item.
A courier that gives you a two-day window is not usable for spinach. Which means your delivery radius is set by how far a boda can go and come back within the round, and your customer list is a map before it's a spreadsheet. Draw the map. Pick the estates you can cover in one loop. Refuse the rest politely, or charge properly for them and run them last.
Plan the round in this order, and it matters:
State a window, not a time. "Between 2pm and 5pm" is a promise you can keep. "By 3pm" is a promise a matatu breaks for you.
And decide now what happens when nobody's home, because in this trade there is no "we'll try again tomorrow". Tomorrow the coriander is finished. The workable policy: the buyer names a person, a gate, a watchman or a neighbour who can receive it, and once it's handed over it's delivered. Put that in writing in the order confirmation. The mechanics of running your own local drops without a courier company, including how to brief a rider you don't employ, are in delivering locally without a courier.
Charge for the delivery separately and honestly. A flat KSh 200 inside your loop, free above an order of KSh 2,500, and a higher band outside it, is easier to defend than a mysterious price baked into every tomato. How to work out what that band should actually be, rather than guessing it, is covered in how to work out delivery charges.
One email on pricing, photographs, delivery and getting paid. No pitch, no filler.
You do not have refrigerated transport and you don't need it. You need to not make things worse between 10am and 6pm.
Newspaper is the cheapest cold-chain substitute available. Wrap herbs and greens loosely in slightly damp newspaper and they'll arrive looking like something you'd want to cook.
Selling fresh, uncooked produce is usually treated more lightly than selling cooked food, and the requirements are local rather than national. In Kenya that means the county, and the answer differs between counties.
Do not take this article's word for what applies to you, and don't take a WhatsApp group's word either. Ring or visit your county's business licensing desk and ask what a person buying produce at a market and delivering it to homes needs. Ask specifically whether it changes if you handle food in your own kitchen, cut anything, or store it overnight, because that's usually where the line sits. It's a short conversation and they've had it many times. Do it before you print anything with your name on it.
Your buyers will pay the way Kenyan buyers pay: a till number, or cash to the rider on delivery.
Here's the limitation, and it's a real one. Sailo has no mobile money rail. There is no M-Pesa button, and there won't be one because it doesn't exist in the product. What Sailo has is a bank transfer option with a free-text instructions field, and plenty of sellers put their till or paybill details in that field so the buyer sees exactly what to do at checkout. That works, and it's honest to describe it as a workaround rather than a feature. The catalogue, the order and the address all arrive properly. The money moves entirely outside Sailo, and Sailo takes nothing on it.
The other half of that limitation is confirmation. Sailo cannot tell you that a payment arrived, because it never sees it. Only your own statement can. So marking an order paid is a thing you do, in the morning, before you go to market. Ten minutes a day, and the way to do it without being caught by a doctored screenshot is worked through in how to know a bank transfer actually arrived.
Cash on delivery works well here for a specific reason: your rider is going to the door anyway, and produce is cheap enough that a refusal costs you a bag of carrots rather than a phone. The part that quietly kills people is reconciliation when the round finishes. Twelve drops, some cash, some paid in advance, one short. Count the cash against the round sheet with the rider present, every single day, before he leaves. The method is in rider handovers and cash reconciliation.
Wanjiru runs two rounds a week from a two-bedroom in Kileleshwa. Her list is 18 items and never more, because 18 items is what she can buy well in one market trip.
A Wednesday round looks like this. She takes 31 orders in the window, averaging KSh 1,150 each, so KSh 35,650 of committed sales. She spends KSh 21,000 at the market at 5am. Transport in is KSh 600. Bags, labels and newspaper run about KSh 400. She loses roughly KSh 1,700 of stock to damage and shortfall across the round, which is about 8%.
Delivery is two boda riders for the afternoon at KSh 1,500 each, and she charges KSh 200 delivery on orders under KSh 2,500, which covers roughly two thirds of it.
So: KSh 35,650 in, plus about KSh 3,800 of delivery charges, against KSh 21,000 of stock, KSh 3,000 of riders, KSh 1,000 of transport and packaging, and KSh 1,700 of spoilage already inside the stock figure. That leaves her somewhere around KSh 12,000 for the day, before her own six hours.
Two rounds a week, four weeks, and she's at roughly KSh 96,000 a month on a business with almost no fixed costs. It's real money. It's also thirty-two market mornings a year that start at 4:30am, and she'd tell you that's the actual price.
The thing she changed in month two: she stopped taking orders after Tuesday night. People asked, she said no, and her Wednesday stopped being chaos. Half of running this well is holding a cut-off that nobody else respects until you do.
She also killed three items from the list entirely. Fresh coriander, mint and strawberries all sold fine and all lost her money, because the loss rate on them was closer to a quarter than a twelfth. If an item's spoilage rate is above about 15%, it needs to carry a much higher margin or it needs to leave the list. Wider context on running any small shop in this market, including what buyers here expect at the door, is in selling online in Kenya.
Pick your two round days and write them down. Then write the list, and keep it under twenty items, sorted by how long each one survives a warm boot.
For each item, decide right now which of the three pricing shapes it uses: by the piece, by a stated band, or by a minimum weight you top up. Write the band into the product name itself, so it's on the page and not in a conversation.
Then run one round, and count three numbers at the end of it: what you spent, what you delivered, and what you threw away. That third number is your business. Everything else is arithmetic you can do later.
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