# POS system for agrovets in Kenya

> Wave POS is an agrovet POS system for Kenya. It sells fertiliser, seed and animal feed by the bag or by the kilo from one stock count, records batch numbers and expiry dates for vet medicines, keeps farmers' credit within limits you set, takes M-Pesa, and keeps selling when the network in a market town drops.

- **By the bag or by the kilo**: A 50 kg bag is a pack of the kilo, so whole bags and loose kilos come off the same stock.
- **Expiry on vet medicines**: Batch numbers and expiry dates recorded with each delivery of dewormers, acaricides and other vet drugs.
- **Farmer accounts with limits**: Farmers buy on account within a limit and pay at the till when the milk money or the harvest comes in.
- **Made for weak networks**: Sales are saved on the till and sent when the signal returns, with receipt numbers still in order.

## How an agrovet sells

An agrovet sells to farmers whose buying follows the seasons and whose cash follows the harvest. That shapes the whole business: stock that has to be in the shop before the rains, goods sold both by the bag and by the kilo, medicines with expiry dates, and a good deal of credit.

At an agrovet in Kitale or Nyeri, that means:

- Fertiliser and feeds in 50 kg and 70 kg bags, with smallholders buying 5 or 10 kg loose.
- Vet medicines, dewormers and acaricides that expire if they sit too long.
- A rush for maize seed and planting fertiliser before the long rains, then a quiet spell.
- Farmers who pay when the dairy cooperative pays or the crop is sold.
- Branches in market towns where the network comes and goes.

## By the bag or by the kilo, from one stock

Wave POS sells bags and loose kilos from the same stock. Keep DAP in kilos and add a 50 kg bag as a pack of 50: a whole bag takes 50 kg off stock, and a farmer buying 7.5 kg loose takes 7.5 kg off the same count. Quantities go to three decimals, so 1.25 kg of chick mash rings up correctly.

The bag and the kilo each have their own price, so the loose price can cover the work of opening and weighing a bag. Weigh on your own scale and type the weight in. Seed in 2 kg packets and vet drugs by the bottle sell by the piece as usual.

## Batches and expiry dates for vet medicines

Turn on batches for vet medicines and each delivery records the batch number and expiry date. When a batch of dewormer passes its date, write it off through an adjustment with the reason Expired. Nothing leaves stock until a manager approves it, and the record keeps both names: who asked and who approved. See [stock and inventory](https://wavepos.app/features/inventory-management).

## Getting ready for the planting season

Wave POS's reports help you buy before the rains, not after. The low-stock report lists items at their reorder level, with what sold in the last 30 days and how many days of stock are left. The product performance report shows the best sellers and the slow movers still on the shelf. Run last season's sales by product, export them to Excel, and you have a starting list for this season's order.

When the stock arrives, receive it at cost from a draft. Supplier accounts and creditors ageing show what you owe the distributor and when it falls due. The [purchasing and suppliers](https://wavepos.app/features/purchasing-and-suppliers) page has the detail.

## Credit for farmers, with limits

Give each farmer who buys on account a credit limit. A sale goes on account only once the till has checked the room left under that limit, and the farmer pays at the till, in cash or by M-Pesa, when the milk money comes in. Debtors ageing shows who has owed for more than 60 or 90 days, so next season's credit goes to the farmers who paid for the last one. Read our guide to [managing customer credit](https://wavepos.app/guides/manage-customer-credit).

## A planting-season sale, worked through

A farmer from Kiminini buys for two acres of maize and her dairy cows, on account:

| Item | Qty | Price | Line |
| --- | --- | --- | --- |
| Hybrid maize seed, 2 kg packet | 10 | KSh 650 | KSh 6,500 |
| DAP, 50 kg bag | 2 | KSh 3,500 | KSh 7,000 |
| CAN, loose | 12.5 kg | KSh 70 a kg | KSh 875 |
| Dairy meal, 70 kg bag | 1 | KSh 3,200 | KSh 3,200 |
| Dewormer, 100 ml | 1 | KSh 450 | KSh 450 |

The total is KSh 18,025. Her limit is KSh 25,000 and she owes nothing, so the sale goes on account. Stock falls by 10 packets of seed, 100 kg of DAP, 12.5 kg of CAN, 70 kg of dairy meal and one bottle of dewormer. When the cooperative pays at the end of the month, she pays KSh 10,000 by M-Pesa at the till; the rest waits for the harvest, and her ledger shows every step.

## Branches and weak networks

Each branch has its own stock, tills and prices, and the tills keep selling when the network drops. Say your main shop is in Kitale with a branch in Endebess: transfers move fertiliser from the main store to the branch, with any shortfall recorded as lost in transit, and prices per branch let the branch charge for the extra transport.

When the signal goes, the till stores each sale and sends the lot, in the order they were made, once it returns. Prompts to a customer's phone need a connection, so in the meantime cashiers type in the M-Pesa code from the customer's confirmation message. The [offline selling](https://wavepos.app/features/offline-pos) page explains how it works.

## Frequently asked questions

### Can I sell fertiliser by the bag and by the kilo?

Yes. Keep the fertiliser in kilos and set up the 50 kg bag as a pack. A bag sold takes 50 kg off stock, loose sales take the weight you type, to three decimals, and the bag and the kilo each have their own price.

### Can agrovet software track expiry dates on vet medicines?

Yes. Mark the medicines for batches, and when a delivery is received, enter each line's batch number and expiry date. Out-of-date stock is written off through an adjustment a manager approves, so you can see what was lost, when and why.

### Can farmers buy on credit until harvest?

Yes, within a limit you choose for each farmer. The till checks the room left under that limit before a sale goes on account. Farmers can pay part when the cooperative pays and the rest after harvest, by cash or M-Pesa at the till, and debtors ageing picks out anyone who has owed for more than 90 days.

### Will it work in a town with a poor network?

Yes. A till with no signal carries on selling and holds its sales until the connection is back, then sends them in the order they were made. The M-Pesa prompt needs the internet, so during an outage the customer pays to your till number as usual and the cashier types in the code.

### Can I run agrovet branches in different towns?

Yes. Each branch has its own stock, tills and prices, and the dashboard shows every branch together or one at a time. Transfers move stock between branches and record any shortfall as lost in transit.

---

Source: https://wavepos.app/industries/agrovets
Last updated: 2026-10-11
