AI assistant · Cloud access · Still sells offline

Kenya's first AI Cloud POS system.

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.

demo.digitalmoranpos.africa — Cashier Checkout Terminal

Tab: Cashier Checkout Terminal

Kimana Main 14:32:06 BIASHARA READY
Unga Pembe 2kg
185.00
42 in stock
Sukari Kabras 1kg
160.00
28 in stock
Blue Band 250g
245.00
15 in stock
Fresh Fri 500ml
198.00
9 in stock
Omo Fast Action 1kg
320.00
21 in stock
Ketepa Tea Leaves 250g
175.00
33 in stock
Active Checkout Cart5 items
2Unga Pembe 2kg370.00
1Sukari Kabras 1kg160.00
1Blue Band 250g245.00
1Ketepa Tea Leaves 250g175.00
Subtotal (VAT inclusive)950.00
VAT at 16%131.03
Discount applied−50.00
Total amount due 900.00

Checkout Terminal. Scan or search, apply a capped discount, take cash, M-Pesa, bank or deni — and capture the reference code against the sale.

Any phonewatch every branch from anywhere
Plain Englishask the assistant, it reads your books
0 barsof signal needed to keep selling
13 menusone till application
Moran AI Assistant

Ask your shop a question. Get the answer from your own books.

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.

“Is Njoki stealing from me?”

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.

  • Voids and discounts per cashier, compared against everyone else on the same till.
  • Cash-up variance over time — whose shifts close short, and by how much.
  • Timestamps you can hold against the CCTV, from the audit trail.
  • No verdicts. It reports the pattern and stops. The judgement stays yours.
digitalmoranpos.africa — Moran AI Assistant

Moran AI Assistant

All branches Last 30 days
Is Njoki stealing from me?
I can't answer that — I can only show you what the records say. Here is what stands out about Njoki's till over the last 30 days.
Voids after payment14others: 2 and 1
Cash-ups closing short9 of 22avg KES 640 down
Discount ceiling used71%on 38 sales, all within limit
Eleven of the fourteen voids were cash sales, and nine of those fell between 13:00 and 14:00 — the quiet hour. The other two cashiers averaged KES 30 down at cash-up; she averages KES 640.

None of this is proof. A broken scanner, a training gap or a genuinely busy till produce the same shape. What it does tell you is where to look: pull the 14 void records under Transactions, hold their timestamps against the CCTV, and ask her about the 13:00 hour.
Show me those 14 voids.

Loss prevention, not accusation. The assistant surfaces the pattern and the records behind it — you decide what it means.

“What were our sales this week, and what should I improve?”

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.

  • Revenue and margin together, because selling more and keeping less is the most common way a good week hides a bad one.
  • Named causes — which product, which hour, which branch — not just a percentage.
  • Ranked actions you can actually take before Monday.
  • Ask it anything else in the same thread — it keeps the context.
digitalmoranpos.africa — Moran AI Assistant

Moran AI Assistant

On the owner's phone SYNCED
What were our sales this week, and what should I improve?
Week of 24–30 August, Kimana Main and Loitokitok combined.
RevenueKES 284,610+9% on last week
Gross profitKES 61,240margin 21.5%, down from 23.1%
Checkouts391avg basket KES 728
You sold more and kept less. Three things I would look at:

1. Unga is the margin drop. Your buying price went up KES 12 a bale on 26 August and the shelf price never followed. That single line accounts for about KES 4,100 of lost profit this week.

2. Saturday 15:00–18:00 is understaffed. It is 22% of the week's revenue on one cashier, and the average basket drops 18% in that window — people are leaving the queue.

3. KES 34,180 is on the deni book, KES 18,330 of it past 30 days. Two customers are over their limit. That is a month of Unga you have already paid for.

A weekly review in ten seconds. Same assistant, same data — asked from the owner's phone in Nairobi.

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.

Evidence, not accusations

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.

You choose where the AI runs

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.

Screen by screen

What it looks like on the counter.

The same screens the demo will open for you, with the numbers a real duka would be reading on a Thursday afternoon.

Know the day before it ends

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.

  • Payment split across cash, M-Pesa till or paybill, and bank transfer — as amounts, not percentages.
  • Eight-day revenue trend so a bad Tuesday is visible as a pattern, not a feeling.
  • Critical shelf alerts — low stock, sold out, and anything expiring inside 30 days — pushed to the top.
  • Recent shop sales with the cashier's name against every line.
demo.digitalmoranpos.africa — Metrics Dashboard

Tab: dashboard

Ask Moran AI Kimana Main 17:04:51 BIASHARA READY
Sales today
KES 48,320
63 completed checkouts
This month
KES 1.14M
+11% on last month
Products in stock
412
KES 806,400 retail value
Needs attention
9
6 low · 3 expiring
Daily revenue trendLast 8 days · KES
Payment splitToday
Pay methodSalesTotal (KES)
M-Pesa paybill / till3829,640
Cash payments2114,180
Bank transfers23,200
Going on the book (deni)21,300

Metrics Dashboard. Admin-only. Cashiers open straight into the checkout screen instead.

Margin, not just turnover

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.

  • Estimated gross profit and aggregated gross margin for any period.
  • Net operating profit after corporate expenditures from the ledger.
  • Best and worst movers ranked by quantity sold in the active month.
  • Locked selling profit — the profit still sitting on the shelf, unsold.
  • PDF export for the landlord, the bank or the accountant.
demo.digitalmoranpos.africa — Financial Reports

Tab: reports

June 2026 Export PDF BIASHARA READY
Total revenue
1,142,860
1,318 completed checkouts
Gross profit
248,410
Aggregated margin 21.7%
Analyzed expenses
86,900
Deducted ledger logs
Net operating profit
161,510
Net efficiency 14.1%
Regular turnoverRanked by quantity sold · June
Product nameCategorySoldRevenueGross profit
Unga Pembe 2kgFood Items642118,77022,470
Sukari Kabras 1kgFood Items48878,08014,640
Fresh Fri 500mlFood Items30159,59813,545
Omo Fast Action 1kgHousehold Goods17656,32015,840
Ketepa Tea Leaves 250gBeverages15426,9506,160
Needs reviewDispatch urgency
ProductIn stockSold this monthRecommend log
Colgate 140g288Restock today
Nice & Lovely 100ml614Slow mover
Exercise book A40140Sold out

Financial Reports. Revenue, margin and the expense ledger reconciled into one number you can act on.

Nothing expires quietly

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.

  • Low stock at shelf against a threshold you set per product, not a global guess.
  • Completely sold out — separated out, because it is a different decision.
  • Nearly expired inside 30 days, so it can be discounted while it still sells.
  • Expired, with a logged reason and operator signature when it comes off the shelf.
demo.digitalmoranpos.africa — Shelf Monitoring

Tab: stock

9 08:12:40 BIASHARA READY
Low stock at shelf
6
Completely sold out
3
Nearly expired (30d)
4
Expired products
1
All shelf alertsKimana Main
Product display nameCategoryRemainingShelf expiryAlert condition
Exercise book A4Stationery0—Completely sold out
Colgate 140gCosmetics2—Low stock at shelf
Brookside Milk 500mlBeverages2411 Jul 2026Nearly expired (30d)
Royco Mchuzi Mix 200gFood Items702 Jun 2026Expired — remove
Blue Band 250gFood Items1519 Sep 2026Healthy
Notification tray
Royco Mchuzi Mix 200g expiredExpiry passed 02 Jun 2026 · 7 units still on shelf
Colgate 140g running out2 left · alert threshold is 5 units
Transfer awaiting approvalKimana Main → Loitokitok · 24 × Unga Pembe 2kg
Void awaiting approvalReceipt DM-004812 · requested by Jane Wambui

Shelf Monitoring. Alerts also surface in the bell tray on every screen, so the cashier sees them too.

The book, the branches and the shift

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.

  • Deni with a limit. Each customer has a ceiling; the terminal flags them the moment they go over it.
  • Repayments with references. An M-Pesa code recorded against the payment, so the ledger reconciles.
  • Approved transfers. Stock only moves between branches once a supervisor signs it with their PIN.
  • Till shift cash-ups. Opening float, expected drawer, counted cash, and the difference — named and dated.
demo.digitalmoranpos.africa — Customers (Deni)

Tab: customers

Kimana Main 16:47:19 BIASHARA READY
Owed to the shop
KES 34,180
across 7 customers on credit
Over their limit
2
no further deni until cleared
Customers on credit
CustomerPhoneOwedLimitStatus
Mama Njeri0712 448 21012,40010,000Over their limit
Ole Sankale0722 190 7748,65015,000Within limit
Kitchen Fresh Hotel0733 802 5617,20020,000Within limit
Peter Mutiso0745 336 9085,9305,000Over their limit
Record a repaymentMama Njeri
Amount receivedKES 4,000
Paid byM-Pesa
ReferenceTJ84P2LM9Q
New balanceKES 8,400

Customers (Deni). The credit book with a limit, a balance and a paper trail on every repayment.

Offline first

Fibre cuts. Power dips. The queue does not care.

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.

Sell with the line down

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.

Ordered sync, not a guess

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.

Offline login that is still secure

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.

Runs on what you already own

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.

Your data, exportable

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.

Receipts that print

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.

Built for Kenya

It already speaks how your shop trades

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.

  • M-Pesa till and paybill stored against the shop and printed on the receipt, with the customer's SMS code captured against each sale for reconciliation.
  • VAT at your own rate — 16% out of the box — computed inclusive per line and broken out on the receipt.
  • KRA PIN on receipts as a switch you turn on. eTIMS transmission is built in but stays off until a control unit is actually set up, so no shop is forced into it.
  • A shop with no KRA obligation and no Safaricom credentials can leave every one of those switches off and trade exactly as before.
  • Nairobi timezone on the clock, the audit trail and every report boundary — so "today" means today.
Printed receipt — 80mm thermal
KIMANA MINI MART Sankale Building, Kimana
Tel 0717 186 463
KRA PIN: P051XXXXXXA

RECEIPT NO:DM-004917
TERMINAL:POS-01 (Offline-First)
CASHIER OPERATOR:Jane Wambui

2 × Unga Pembe 2kg370.00
1 × Sukari Kabras 1kg160.00
1 × Blue Band 250g245.00
1 × Ketepa Tea 250g175.00

Subtotal:950.00
VAT 16% (incl.):131.03
Discount:-50.00
GRAND TOTAL:900.00

PAYMENT METHOD:M-PESA
Reference Record:SJ41K8P2QT
Buy Goods Till:884 2210

Asante sana. Karibu tena.

The receipt. Printed to a thermal roll or saved as a PDF, with only the fields you switched on.

Control and accountability

Who did what, and when.

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.

Three roles, real boundaries

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.

Voids need approval

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.

Capped discounts

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.

A filterable audit trail

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.

PINs, hashed properly

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.

Branch-scoped by default

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.

Getting started

How a shop goes live.

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.

01

Look around

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.

02

Talk

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.

03

Load your shop

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.

04

Trade

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.

Questions

What shop owners ask us first.

The questions that come up on nearly every call, answered before you have to make it.

Can the POS tell me if my employees are stealing?

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.

Can I check my shop from my phone while I am away?

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.

What is the Moran AI Assistant, and where does my data go?

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.

Does Digital Moran POS work without internet?

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.

Does it integrate with M-Pesa?

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.

Is it KRA and eTIMS compliant?

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.

What hardware do I need to run it?

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.

Can it handle customers who buy on deni?

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.

Does it work for more than one shop?

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.

How much does it cost?

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.

Can I get my data out if I stop using it?

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.

Put it on your counter.

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.