Your shop, from anywhere
The till runs on the counter; the cloud puts the same books on your phone. Check today's takings, the void list and the deni book from Nairobi, from Mombasa, or from a matatu — without calling anyone to ask.
Open your shop from any phone, anywhere — and ask it questions in plain English. The Moran Assistant reads your own sales, stock, voids and shift records and tells you what actually happened at the counter while you were not standing behind it. And when the line drops, the till keeps selling.
A real shop with sample data at demo.digitalmoranpos.africa — nothing to install.
Checkout Terminal. Scan or search, apply a capped discount, take cash, M-Pesa, bank or deni — and capture the reference code against the sale.
Every Kenyan shop owner has the same two questions, and neither of them is answered by a stack of receipts. The assistant reads your real sales, voids, discounts, stock and cash-ups — and answers in plain English, from any phone, anywhere.
Theft is the quiet tax on Kenyan retail, and it is almost never dramatic. It is a void after a cash sale. A discount that was not authorised. A drawer that is six hundred short, again. Any one of them is invisible. The pattern is not.
The assistant will not accuse anybody — it shows you the evidence and tells you where to look. That distinction matters: a number you can check is worth more in a difficult conversation than a suspicion you cannot.
Loss prevention, not accusation. The assistant surfaces the pattern and the records behind it — you decide what it means.
The second question every owner asks, and the one a printed report never quite answers. Turnover is easy. Knowing which line quietly ate your margin, which hour you were understaffed, and how much of your money is sitting on somebody else's shelf — that is the work.
A weekly review in ten seconds. Same assistant, same data — asked from the owner's phone in Nairobi.
The till runs on the counter; the cloud puts the same books on your phone. Check today's takings, the void list and the deni book from Nairobi, from Mombasa, or from a matatu — without calling anyone to ask.
Every figure the assistant quotes traces back to a record you can open — a receipt, a void, an audit entry, a cash-up. It is built to end arguments with a timestamp, not to start them with a guess.
Google Gemini, an open model on Groq or OpenRouter, or a model running entirely on the shop's own machine through Ollama — so your customers' names and balances never have to leave the building.
The same screens the demo will open for you, with the numbers a real duka would be reading on a Thursday afternoon.
The dashboard is the first thing an admin sees. Today's takings, the month to date, how much stock is sitting on your shelves, and how the money actually came in — because cash and M-Pesa need reconciling differently.
| Pay method | Sales | Total (KES) |
|---|---|---|
| M-Pesa paybill / till | 38 | 29,640 |
| Cash payments | 21 | 14,180 |
| Bank transfers | 2 | 3,200 |
| Going on the book (deni) | 2 | 1,300 |
Metrics Dashboard. Admin-only. Cashiers open straight into the checkout screen instead.
Plenty of tills tell you what you sold. This one tells you what you kept. Because the catalogue holds buying price as well as selling price, gross profit is calculated per line — then the expense ledger is deducted to get to net operating profit.
| Product name | Category | Sold | Revenue | Gross profit |
|---|---|---|---|---|
| Unga Pembe 2kg | Food Items | 642 | 118,770 | 22,470 |
| Sukari Kabras 1kg | Food Items | 488 | 78,080 | 14,640 |
| Fresh Fri 500ml | Food Items | 301 | 59,598 | 13,545 |
| Omo Fast Action 1kg | Household Goods | 176 | 56,320 | 15,840 |
| Ketepa Tea Leaves 250g | Beverages | 154 | 26,950 | 6,160 |
| Product | In stock | Sold this month | Recommend log |
|---|---|---|---|
| Colgate 140g | 2 | 88 | Restock today |
| Nice & Lovely 100ml | 61 | 4 | Slow mover |
| Exercise book A4 | 0 | 140 | Sold out |
Financial Reports. Revenue, margin and the expense ledger reconciled into one number you can act on.
Shelf Monitoring watches four conditions at once and raises them in the notification tray before they become losses — the flour that ran out on Saturday, and the milk that has eleven days left.
| Product display name | Category | Remaining | Shelf expiry | Alert condition |
|---|---|---|---|---|
| Exercise book A4 | Stationery | 0 | — | Completely sold out |
| Colgate 140g | Cosmetics | 2 | — | Low stock at shelf |
| Brookside Milk 500ml | Beverages | 24 | 11 Jul 2026 | Nearly expired (30d) |
| Royco Mchuzi Mix 200g | Food Items | 7 | 02 Jun 2026 | Expired — remove |
| Blue Band 250g | Food Items | 15 | 19 Sep 2026 | Healthy |
Shelf Monitoring. Alerts also surface in the bell tray on every screen, so the cashier sees them too.
Three things that quietly decide whether a shop makes money: who owes you, where your stock actually is, and whether the drawer balances at close. All three are recorded rather than remembered.
| Customer | Phone | Owed | Limit | Status |
|---|---|---|---|---|
| Mama Njeri | 0712 448 210 | 12,400 | 10,000 | Over their limit |
| Ole Sankale | 0722 190 774 | 8,650 | 15,000 | Within limit |
| Kitchen Fresh Hotel | 0733 802 561 | 7,200 | 20,000 | Within limit |
| Peter Mutiso | 0745 336 908 | 5,930 | 5,000 | Over their limit |
| Amount received | KES 4,000 |
| Paid by | M-Pesa |
| Reference | TJ84P2LM9Q |
| New balance | KES 8,400 |
Customers (Deni). The credit book with a limit, a balance and a paper trail on every repayment.
Most point-of-sale software treats the internet as a given and stops dead without it. Ours treats the shop as the source of truth. Sales are written locally the moment they happen, then pushed up when the line returns — in order, without duplicates.
Checkout, stock deduction, receipts, deni and expenses all write to a local database in the browser first. A dropped connection changes nothing the cashier can see.
Everything that happened offline is queued as an action and replayed against the server in sequence when connectivity returns, then merged with what the server already knows.
A cashier can sign in with no network because their profile is cached encrypted with AES-GCM, under a key derived from their own PIN. Without the PIN the cache is unreadable.
A browser is the whole requirement. The shop laptop, a cheap Windows machine, an Android tablet on the counter — same application, same data, no install.
Full backup and restore from the settings menu, with an admin PIN required to authorise a restore. Reports export to PDF. Nothing is locked in.
Thermal-printer friendly receipts carrying your shop name, address, support line, till or paybill number, VAT breakdown and — if you want it — your KRA PIN.
This was not built somewhere else and translated. Deni is a menu, not a workaround. M-Pesa is a payment route, not "other". The clock is on Nairobi time and the currency is shillings, everywhere, without a setting to change.
The receipt. Printed to a thermal roll or saved as a PDF, with only the fields you switched on.
Shrinkage in a small shop is rarely dramatic. It is a discount that was not authorised, a void with no reason, a price that changed on a Tuesday. Every one of those is a recorded event here.
Admins see everything. Supervisors approve transfers and voids. Cashiers get the checkout, the catalogue read-only, and the deni book. An operator can be tied to a single branch.
A cashier can request a void, not grant one. It sits in the tray until a supervisor approves it — and the voided sale stays in the transaction list, marked, with its reason attached.
You set the maximum percentage a cashier may take off a sale. The terminal will not accept more, so goodwill stays inside a number you chose.
Price changes, stock adjustments, user changes, restores and voids — each timestamped with the operator, the branch and a trace note. Filter by any of the three.
Operator PINs are hashed with bcrypt on the server and never stored in the clear. Sessions are signed tokens. Cached offline profiles are encrypted with a key derived from the PIN itself.
Stock, sales and expenses are scoped to the branch the terminal is working in. Owners can switch branches from the header; staff see only their own.
Same way Digital Moran Agency runs every project: you always know what stage we are at, what we need from you, and what happens next.
Open the demo shop and press every button. It is loaded with sample stock and sales, and nothing you do in there touches a real business.
A free call. Tell us how many branches, how many tills, whether you have KRA obligations, and what your current book looks like. We tell you honestly whether this fits.
We set up your branches, operators, categories and product catalogue with your real buying and selling prices, then train whoever will be standing at the counter.
You get every login and a backup of your own data. If you ever want to leave, the export button is right there in the settings menu.
The questions that come up on nearly every call, answered before you have to make it.
It can show you the evidence, and it deliberately stops short of a verdict. The assistant compares voids after payment, discount usage and cash-up variance for each cashier, and tells you where one till behaves differently from the others — with the timestamps you can hold against your CCTV.
Every figure traces back to a record you can open. What it means is your judgement, not the software's, and we built it that way on purpose: a number you can check is worth far more in a difficult conversation than a suspicion you cannot.
Yes. The till runs on the counter and syncs to the cloud, so the same books open on your phone from anywhere — today's takings, the void list, the deni book and the shift cash-ups.
You can ask the assistant a question from that phone too, and it answers from your live data rather than from a report somebody remembered to send you.
It is an assistant built into the POS that reads your own sales, stock, expenses, voids and cash-ups and answers questions in plain English — what you sold this week, which product ate your margin, which cashier's till looks different from the rest.
You choose the engine. Google Gemini, an open model on Groq or OpenRouter, or a model running entirely on the shop's own machine through Ollama — in which case your customers' names and balances never leave the building. With nothing configured, the assistant stays switched off and every other menu works as normal. The detail is in the Privacy Policy.
Yes. Sales, stock deductions, receipts, deni entries and expenses are written to a local database on the terminal first, then queued and synchronised with the server when connectivity returns. A dropped connection changes nothing the cashier can see.
Cashiers can even sign in offline, because their profile is cached encrypted under a key derived from their own PIN.
It records M-Pesa payments rather than processing them. Your till or paybill number prints on the receipt, customers pay Safaricom directly exactly as they do today, and the cashier captures the M-Pesa SMS code against the sale so your till reconciles against your statement.
It is not a payment processor and it does not move money — which also means there is nothing extra to license or approve.
It calculates VAT at a rate you set and can print your KRA PIN on every receipt. eTIMS invoice transmission is built in but stays switched off until a KRA control unit is actually set up, so a shop with no KRA obligation can leave all of it off and trade exactly as before.
Tax compliance stays your responsibility — we provide the tooling, not the advice. See the Terms of Service.
A browser is the whole requirement. The shop laptop, a cheap Windows machine, or an Android tablet on the counter all run the same application against the same data, and there is nothing to install.
Receipts print to an ordinary 80mm thermal printer, or save as a PDF if you would rather not print at all. A barcode scanner is optional — it types into the same search box a cashier uses.
Yes — deni is a menu, not a workaround. Each customer has a balance and a credit limit, the terminal flags them the moment they go over it, and every repayment is recorded with its M-Pesa reference against the ledger.
The dashboard shows the total owed to the shop and how many customers are over their limit, so the book stops being something only one person understands.
Yes. Stock, sales and expenses are scoped to the branch a terminal is working in, and owners can switch branches from the header while staff see only their own.
Stock only moves between branches once a supervisor approves the transfer with their PIN, and both branches' quantities move together so nothing walks between shops unrecorded.
It depends on how many branches and tills you run, and whether we host it for you or you self-host on your own machine. Tell us about your shop and we come back within one working day with a fixed quotation — nothing starts until you have that in writing.
Send us the details and we will give you an honest view, including whether this is the wrong fit for you.
Yes. Full backup and export live in the settings menu, and reports export to PDF, so you can take your data out at any time without asking us. Nothing is locked in, and nothing is held hostage.
Tell us how many shops you run and what your current till looks like. We come back within one working day with an honest view of what it takes, what it costs, and how long it runs.