Skip to content
UpeoRetail
Multi-branch reporting

Your Whole Day, Branch By Branch, Before You Sleep

At closing time UpeoRetail emails you one PDF: what every branch took, who sold it, who held the drawer, how it was paid, what is still owed, and the three or four things that need a decision before tomorrow opens.

It is not a dashboard you have to remember to open. It arrives.

Upeo Retail Demo · Daily trading report
Thursday 23 July 2026
4 branches · 10 counter staff
07:2818:51
Sales invoiced
KES 897,538
Money received
KES 899,650
Still owed
KES 8,050
Credit held
KES 27,480
NairobiMombasaKisumuNakuru
07
08
09
10
11
12
13
14
15
16
17
18
Nairobi108 sales406,046
Mombasa62 sales208,150
Kisumu46 sales184,579
Nakuru31 sales108,924
A real day from our demonstration shop. Your report carries your own branches, staff and tills.

A Real Report, End To End

This is the actual report our demonstration shop produced on Thursday 23 July 2026 - all six pages, nothing edited, nothing tidied for the website. 251 documents, 4 branches, 10 counter staff, and every check passed.

Invoiced
KES 897,538
247 sales, 4 refunds
Received
KES 899,650
across 12 payment modes
Reconciliation
All checks passed
branch, seller, cashier, mode

Hover any hour of the chart or any bar to read the figures behind it. On paper this is six A4 pages; the page breaks below are the real ones.

UPEO RETAIL DEMO · Daily trading report

Thursday 23 July 2026

The day whole, then branch by branch, then person by person.

Trading window 07:2818:51
Branches 4 · Counter staff 10
Documents 251 submitted, 1 draft
Source demo.upeoretail.com
Sales invoiced
KES 897,538
251 documents — 247 sales, 4 refunds
Money received
KES 899,650
at the counter, plus anything settled off it
Still owed
KES 8,050
4 invoices, unsettled at close
Credit held unapproved
KES 27,480
8 sales, none released
Gross profit
KES 240,721
30.8% on KES 782,500 sold, net of VAT
What the goods cost
KES 541,779
valuation moved out of stock with the goods
all branchesOne  

The day

251 documents went through the tills between 07:28 and 18:51 — 247 sales and 4 refunds — carrying 717 units across 494 lines and 38 distinct products to 51 named customers.

The shape of the day

Value taken each hour, stacked by branch. The busiest hour by count was 09:00 with 39 sales; the richest was 09:00 at KES 135,140 off 39.

NairobiMombasaKisumuNakuru
3.3
66.3
135.1
127.8
124.5
52.9
45.0
104.6
100.7
76.7
52.2
18.5
07
1
08
15
09
39
10
30
11
30
12
17
13
14
14
27
15
33
16
23
17
14
18
4

hour of day · figures above each column are KES thousands · the smaller number below is the invoice count

Where the money went

Invoiced value against money actually in hand.

Sales invoiced
247 sales
907,700
Refunds issued
4 credit notes against earlier sales
(10,162)
Net invoiced897,538
Taken at the counter today
against today's own invoices
899,650
Left owing
4 invoices still open at close
(8,050)
Refunds not yet paid back
credit notes the shop still owes the customer
10,162
Money received today899,650
UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 1 of 6

How customers paid

Money taken by mode, net of anything refunded back through the same mode. The bar colour marks the branch the till or account belongs to.

M-Pesa Till 555101 – Nairobi
Nairobi
KES 236,855
Cash Drawer – Nairobi
Nairobi
KES 130,320
M-Pesa Till 555202 – Mombasa
Mombasa
KES 128,380
M-Pesa Till 555303 – Kisumu
Kisumu
KES 96,869
Cash Drawer – Kisumu
Kisumu
KES 78,778
M-Pesa Till 555404 – Nakuru
Nakuru
KES 67,427
Cash Drawer – Mombasa
Mombasa
KES 65,374
Card / PDQ
Nairobi
KES 36,668
Cash Drawer – Nakuru
Nakuru
KES 20,454
Card / PDQ
Nakuru
KES 18,316
Card / PDQ
Mombasa
KES 11,275
Card / PDQ
Kisumu
KES 8,932
Mode of paymentBranchPaymentsReceivedPaid outNet taken
M-Pesa Till 555101 – NairobiNairobi63236,855236,855
Cash Drawer – NairobiNairobi47130,320130,320
M-Pesa Till 555202 – MombasaMombasa37128,380128,380
M-Pesa Till 555303 – KisumuKisumu2396,86996,869
Cash Drawer – KisumuKisumu2378,77878,778
M-Pesa Till 555404 – NakuruNakuru2167,42767,427
Cash Drawer – MombasaMombasa2665,37465,374
Card / PDQNairobi436,66836,668
Cash Drawer – NakuruNakuru920,45420,454
Card / PDQNakuru218,31618,316
Card / PDQMombasa111,27511,275
Card / PDQKisumu18,9328,932
Money received today899,650

Basket size

The average sale was KES 3,675.

Under 500
12 sales
KES 5,162
500 – 999
26 sales
KES 19,476
1,000 – 2,499
64 sales
KES 111,638
2,500 – 4,999
77 sales
KES 292,262
5,000 – 9,999
65 sales
KES 444,883
10,000 and above
3 sales
KES 34,278
UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 2 of 6

What sold

Value by product group.

Tyres & Tubes
52 units
KES 142,860
Body Parts
81 units
KES 130,550
Uncategorised
64 units
KES 114,600
Engine Parts
107 units
KES 105,340
Electrical
77 units
KES 91,960
Accessories
66 units
KES 48,820
Braking System
99 units
KES 47,590
Lubricants
82 units
KES 42,090
Drive System
35 units
KES 34,010
Bearings
54 units
KES 24,680
ProductCodeGroupUnitsOn invoicesValue
01Tyre 3.00-18 TubelessDM-TY-402Tyres & Tubes181875,600
02Tyre 3.00-17 AssortedDM-XX-950Uncategorised131346,800
03Bull Bar Metal FrameDM-BB-101Body Parts141445,500
04Bull Bar Metal Frame BlackDM-BB-102Body Parts111134,100
05Bull Bar Assorted ImportDM-XX-951Uncategorised111131,900
06Kick Start Lever ChromeDM-KS-302Engine Parts442131,680
07Tyre 2.75-18 RearDM-TY-401Tyres & Tubes9930,600
08Tyre 100/90-17DM-TY-403Tyres & Tubes7727,300
09Clutch Plate SetDM-CL-304Engine Parts202027,000
10Chain & Sprocket KitDM-CS-901Drive System111125,850
11Wire Harness CompleteDM-WH-203Electrical121225,200
12Battery Assorted ImportDM-XX-952Uncategorised101023,000

the 12 products that carried the most value today

CustomerBranchInvoicesValueOwing
01Demo Walk-in CustomerMombasa97405,664
02Victor OmondiNairobi422,6202,204
03Stephen RonoMombasa621,622
04Wilson CheruiyotNairobi419,790
05Hassan AbdiNairobi418,978
06Alfred OtienoNairobi518,189
07Simon MaalimNairobi318,015
08Pius KiplagatMombasa616,228
09Sarah NekesaNakuru316,020
10Rachel AmondiNairobi315,834

largest customers of the day, by invoiced value

UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 3 of 6
4 countersTwo  

The branches

Nairobi carried 44.7% of the day's value on 108 sales, at an average of KES 3,760. Across the counters the average sale ranges from KES 3,357 to KES 4,013, so the counters are not simply large, medium and small.

Value by branch

Nairobi
108 sales · 44.7% of the day
KES 406,046
Mombasa
62 sales · 22.9% of the day
KES 208,150
Kisumu
46 sales · 20.3% of the day
KES 184,579
Nakuru
31 sales · 12.0% of the day
KES 108,924
BranchSalesValueShareAvg saleBiggestLinesUnitsProductsCustomersStaff
Nairobi108406,04644.7%3,7609,48922333338463
Mombasa62208,15022.9%3,35711,27512117837312
Kisumu46184,57920.3%4,01311,774871183722
Nakuru31108,92412.0%3,5149,326638829212
All branches247907,700100%3,675494717385110

refunds are excluded here and accounted for in the next table · customer and product counts are distinct within each branch and do not add across rows

What each branch earned

BranchSold (net of VAT)Cost of goodsGross profitMargin
Nairobi350,040234,177115,86333.1%
Mombasa179,440128,12051,32028.6%
Kisumu159,120110,74848,37230.4%
Nakuru93,90068,73525,16526.8%
All branches782,500541,779240,72130.8%

sold and cost are both net of VAT, because VAT sits inside the shelf price and a margin measured against money owed to KRA reads about 16 points too flattering · cost is the valuation that moved out of stock with the goods, the same figure that posts to Cost of Goods Sold

BranchNet invoicedCollectedStill owedRefundsDrafts heldDraft value
Nairobi399,434403,8422,2042 · 6,61219,750
Mombasa205,946205,0303,1201 · 2,20400
Kisumu183,234184,5791 · 1,34600
Nakuru108,924106,1982,7260 · 000
All branches897,538899,6508,0504 · 10,16219,750

collected is what closed a branch's own invoices today; money received against older accounts is not tied to a branch till

UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 4 of 6
9 salespeopleThree  

The counter

10 people raised a sale today. Joseph Mutiso led on value with KES 232,789 from 57 sales.

Value sold, by salesperson

Joseph Mutiso
Nairobi · 57 sales
KES 232,789
Antony Kimani
Nairobi · 35 sales
KES 128,400
Eve Wangari
Mombasa · 40 sales
KES 127,159
Gladys Chepkoech
Kisumu · 32 sales
KES 123,064
Kelvin Mureithi
Mombasa · 22 sales
KES 80,991
Carol Atieno
Nakuru · 13 sales
KES 62,698
Josphat Otieno
Kisumu · 14 sales
KES 61,515
Bernard Mbugua
Nakuru · 18 sales
KES 46,226
Jemimah Wanjiku
Nairobi · 16 sales
KES 44,857
SalespersonBranchSalesValueShareAvg saleBiggestCustomersActiveDrafts held
01Joseph MutisoNairobi57232,78925.6%4,0849,1183308:11–18:03
02Antony KimaniNairobi35128,40014.1%3,6699,4892108:21–16:53
03Eve WangariMombasa40127,15914.0%3,17911,2292507:28–17:16
04Gladys ChepkoechKisumu32123,06413.6%3,84611,774209:32–18:16
05Kelvin MureithiMombasa2280,9918.9%3,68111,2751308:49–18:22
06Carol AtienoNakuru1362,6986.9%4,8239,326909:17–17:45
07Josphat OtienoKisumu1461,5156.8%4,3949,118108:32–16:02
08Bernard MbuguaNakuru1846,2265.1%2,5687,5981408:36–18:51
09Jemimah WanjikuNairobi1644,8574.9%2,8047,1921108:39–17:25
9 salespeople247907,700100%3,6751 · 9,750

customer counts are distinct names on that person's own invoices and do not add across rows · 1 of the drafts in the total were raised outside the counter and belong to no row above · Peter Gitau raised only refunds today and is listed with the refunds rather than as a seller

At the drawer

The person who sells is not always the person who takes the money.

CashierBranchInvoices handledValue through the drawer
Francis MainaNairobi110399,434
Nelly KiruiMombasa63205,946
Esther AwuorKisumu47183,234
Moses NdunguNakuru31108,924
All cashiers251897,538

Refunds

Each credit note is raised against a named earlier sale and booked to whoever authorised it — which is why supervisors can appear here.

Credit noteAgainstCustomerBranchRaised byValue
ACC-SINV-2026-01219ACC-SINV-2026-00999Demo Walk-in CustomerNairobiJoseph Mutiso(4,524)
ACC-SINV-2026-01220ACC-SINV-2026-01158Demo Walk-in CustomerMombasaKelvin Mureithi(2,204)
ACC-SINV-2026-01221ACC-SINV-2026-01048Mohamed NoorNairobiAntony Kimani(2,088)
ACC-SINV-2026-01218ACC-SINV-2026-00975Demo Walk-in CustomerKisumuPeter Gitau(1,346)
Total refunded(10,162)
UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 5 of 6
before tomorrow opensClose  

What needs a decision

CREDIT · KES 27,480

8 credit sales are still waiting for approval

These are real orders that stopped at the approval gate, so none has moved stock or reached the ledger. The largest is UR-SALE-2026-001056 for Wilson Cheruiyot at KES 11,554. Held credit is worth 3% of everything the shop invoiced today.

DEBTORS · KES 8,050

KES 2,726 of it is on one invoice, ACC-SINV-2026-01086 to Boda Riders Sacco

3 other invoices left the counter unpaid today.

DATA · KISUMU

Kisumu recorded only 2 customer names across 46 sales

Sales are being written to a small set of walk-in records, so the branch is selling well but capturing almost nothing about who is buying. Nairobi named 46 customers across 108 sales.

CATALOGUE · KES 114,600

KES 114,600 of the day's sales sit on items with no product group

12.6% of the day's value is filed under "Uncategorised", which makes any product-mix question unanswerable for the largest slice of the business.

HOUSEKEEPING

A document raised by Administrator is sitting in the live day

ACC-SINV-2026-01222 for "Alfred Otieno" at KES 9,750 was raised by the Administrator account rather than a counter user. Sales raised outside a named till cannot be attributed to a person or a shift.

How this was put together

  • Read from demo.upeoretail.com at 08 Aug 2026, 15:50, covering posting date 2026-07-23 (all branches).
  • Sales means submitted invoices. Drafts and unapproved credit sales are counted separately everywhere and never added into a sales figure — they have not moved stock or reached the ledger.
  • Payment-mode totals are net of refunds paid back out, so they describe what is actually in the drawer or the account rather than what was tendered.
  • Salesperson is the user who raised the sale; cashier is the user who held the drawer on the shift it was rung through. Refunds are attributed to whoever authorised them.
  • Branch, salesperson, cashier and payment-mode breakdowns were each recomputed and checked to sum to the day's total, and money received to invoiced value less debt. All checks passed.
UPEO RETAIL DEMO · Daily trading · Thursday 23 July 2026Page 6 of 6

Every figure above came out of Upeo Retail Demo, unedited, on Thursday 23 July 2026. It is a demonstration shop — the branches, staff, customers and till numbers were invented for it. Your own report carries your own.

Five Numbers, Then The Whole Story

The report opens with the figures most owners need, and then earns them - section by section - so you can check any one of them without asking anybody.

Sales invoiced

Submitted invoices only. Held carts and unapproved credit are never in this number.

Money received

What actually reached a drawer or an account - net of refunds paid back out.

Still owed

Invoices that left the counter unpaid today, and who they belong to.

Credit held

Real orders stopped at the approval gate. No stock moved, no ledger touched.

Gross profit

What the day earned, not just what it sold - whole and branch by branch, net of VAT on both sides.

What Is Inside

The day whole, then branch by branch, then person by person.

The day

Everything that went through the tills between the first sale and the last, and the shape of the hours in between.

  • Value taken each hour, stacked by branch
  • Invoiced value traced step by step to money in hand
  • Every payment mode, net of refunds paid back out
  • Basket sizes, product groups and the products that carried the day
  • The largest customers, and what each still owes

The branches

Each counter on its own line - not just who sold the most, but who sells differently.

  • Sales, value, share of the day and average basket per branch
  • Lines, units, distinct products and distinct customers
  • Collected, still owed, refunded and held as drafts, by branch
  • A colour per branch, carried through every chart and table

The counter

Who sold, who took the money, and who authorised what. They are rarely the same person.

  • Value and volume per salesperson, with the hours they were active
  • Biggest sale, distinct customers served and drafts left held
  • A separate table for the cashier who held the drawer
  • Refunds attributed to whoever authorised them, not to whoever sold

What needs a decision

The part most owners read first: what the day is telling you, in plain sentences.

  • Credit sitting unapproved, and the largest order stuck at the gate
  • Debt concentrated on a single invoice or a single customer
  • A branch selling well while capturing almost no customer names
  • Sales piling up on stock that has never been categorised
  • Documents raised outside a named till, which belong to nobody

It Proves Itself Before It Sends

A daily total that is quietly wrong is worse than no report at all, because it gets believed. So the day is recomputed several independent ways and the answers are compared before anything reaches your inbox.

If a check fails, the report still arrives - with the failure printed at the top, in red, naming the two figures that disagree. Nothing is quietly rounded into place.

The branches add up to the day

Every branch total is recomputed and summed. If it misses the day by a shilling, the report says so.

The salespeople add up to the sales

The league table is not a separate query with its own opinion - it has to reconcile to the same figure.

The drawers add up to the day

Cashier totals are checked independently of seller totals, so a mis-assigned shift shows up instead of hiding.

The payment modes add up to the money

Cash, M-Pesa, card and bank must sum to what was actually received - after refunds paid back out.

Invoiced less debt equals what was settled

The identity that catches a missing payment. It is the one that fails first when something is wrong.

The cost of goods agrees with the ledger

Gross profit is worked out from the invoice lines, then held against the Cost of Goods Sold account those same lines posted to. A margin is the one number nobody can check by eye, so it is checked here instead.

Built On Real Multi-Branch Control

The report can only be this specific because the system underneath it knows which branch every sale, every till and every person belongs to.

A branch is a real thing

Its own warehouse, price list, walk-in customer, cost centre and short code - not a text field on a sale.

People belong to branches

Assign staff to one branch or several. What they can see, sell and report on follows automatically.

Tills belong to branches

Each cash drawer, till number and bank account is named against the branch that operates it.

Seller and cashier are separate

The person who rang the sale and the person who held the money are both recorded, and both reported.

Stock moves between branches

Transfers, receiving and per-branch availability at the till, so you can sell what the next shop is holding.

Scoping is enforced, not filtered

A branch manager cannot read the group by changing a dropdown. The limit is applied server-side, on every query.

The last page is the one people read twice

Every report closes with What needs a decision - a short list of what the day is actually telling you, written in sentences rather than left in a table for you to find.

Credit

Held credit is worth 18% of everything the shop invoiced today.

Debtors

Most of what is owed sits on one invoice, to one named customer.

Data

A branch selling well while capturing almost no customer names.

Catalogue

A quarter of the day sitting on stock nobody has ever filed.

Reports are branch-scoped: a branch manager receives their own counter, a group manager receives the branches they run, and an owner receives everything. See pricing for branch and user limits.

Questions People Ask About It

The same questions come up in every demo, so they are answered here rather than in a call.

Yes. The report carries gross profit for the day, whole and branch by branch: what was sold, less what those goods cost to put on the shelf. Both sides are net of VAT, because VAT sits inside the shelf price and a margin measured against money owed to KRA reads about 16 points too flattering. The cost is the valuation that moved out of stock with the goods - the same figure that posts to Cost of Goods Sold - and the report checks the two against each other before it sends.

More on what sits underneath it: all features, your industry and pricing.

See It On Your Own Shop

Book a demo and we will walk through a full trading day - branches, counters, tills and all.