Network Analytics and Cash Planning for a Kenyan Bank
Designed and built a clickable analytics console for a Kenyan bank's branch, ATM and agent network: footfall, queue waits against the service charter, ATM uptime by cause, 14-day cash forecasts and cash-in-transit orders with two-person approval.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Network dashboard, ATM fleet, ATM detail with 6 tabs, cash forecast and CIT orders, with slide-over panels for ATM quick view, incidents, new orders and forecast overrides.
A run-out timeline for every ATM with pay days and holidays marked, and a recommended load rounded to whole bundles of 100 notes and capped at cassette capacity.
The person who raised an order cannot approve it, and the approver's limit must cover the total: KES 10M for the cash management lead, KES 50M for finance.
A 28-ATM watchlist with a detail page each, 18 branches across 8 regions, 27 CIT orders with 3 CIT partners and network counts for 400 ATMs.
Kilele Bank ran about 120 branches, 400 ATMs and 2,300 agent outlets from four places that did not talk to each other: a vendor console for ATMs, a cash spreadsheet built from last month's dispense totals, queue times sent by email and a separate agency banking report. ATMs ran out of cash on month-end Fridays while others sat on idle cash for weeks, and emergency CIT runs cost about three times a scheduled one.
Njia brings footfall, queues, ATM health, cassette levels and channel volumes into one console. It forecasts dispense by denomination around Kenyan pay days and holidays, shows which ATMs run out before their next visit, turns recommendations into CIT orders, and routes each order to an approver whose limit covers it.
A Kenyan bank's network moves with salary days, school terms and M-Pesa. Kilele Bank needed to see where demand was going and plan cash before machines ran empty, not after.
Replenishment was planned from last month's dispense totals, so the spreadsheet missed the 25th-to-month-end salary peak, the start of school terms and public holidays. Machines ran empty exactly when customers needed them most.
NCR, Diebold Nixdorf and Hyosung machines report faults in their own codes. Without one fault list, nobody could tell whether lost hours were the vendor's, cash management's or the telecoms link's, or hold the right party to its SLA.
Kilele Bank publishes queue and turnaround targets, as the Kenya Banking Sector Charter expects, but branch managers reported waits by email. Nobody could say which branches were over target, or which were quiet because customers had moved to agents and mobile money.
Counting visitors at the door is systematic monitoring of a public space under the Kenya Data Protection Act 2019. Sensors must send counts only, never images, and each branch needs its impact assessment and door notices on record.
Mapped 9 staff roles, 30 screens and the data model for branches, ATMs, state intervals, faults, cassettes, queue tickets, agents, incidents, CIT orders and dispense forecasts. Wrote down the rules the design must follow: CBK oversight under the Banking Act (Cap. 488) and Prudential Guidelines, the CBK Guideline on Agent Banking, the Data Protection Act 2019, the Kenya Banking Sector Charter, KES denominations, the Kenyan pay-day and holiday calendar and CEN/XFS device status.
Built 5 key screens on a production dashboard kit: the network dashboard with KPIs, transactions by channel, ATM status and a needs-attention list; the ATM fleet with status pills and bulk CIT orders; the ATM detail with uptime, faults, cassettes, forecast, replenishment and transactions; the cash forecast with a run-out timeline, branch vaults and recommended orders; and CIT orders with approve, reject, send to partner and cancel.
Integration with the ATM switch (such as ACI Postilion or BASE24) and vendor monitoring, queue systems like Qmatic or Wavetec, anonymous people counters, core banking (such as Temenos Transact, Oracle FLEXCUBE or Infosys Finacle), M-Pesa and PesaLink volumes, CIT partner portals and the HR roster. Staff SSO, approval limits checked on the server, an append-only audit log, and the remaining screens for the map, alerts, branches, incidents, agents, network planning, reports and settings.
The forecast lines up each ATM's cash against its next scheduled CIT visit. Machines that reach their minimum first are red and sorted to the top, so cash for the 30 Sept pay day is ordered days ahead, not on the day a machine runs empty.
Each ATM's 30-day uptime strip is split into vendor fault, cash-out, communications and planned hours. Vendors are held to their SLA for their hours only, and cash management sees the hours it caused.
When an approver cannot approve a CIT order, the screen says why: they raised it, or the total is above their limit. Each order shows the forecast or cash-out that triggered it, the estimated cost and any emergency reason.
Footfall is counted on the device and sent as numbers, and transactions are grouped by branch, device or agent and hour. No screen shows a customer's name, and the dashboard footer says how fresh each data feed is.

Designed and built a clickable back-office console for a Singapore bank's deposit operations: holds and blocks, limit changes, fee waivers, payment repairs and end-of-day, with every money-moving change going through maker-checker approval.

An onboarding platform for an Irish digital bank: applicants open a EUR current account from their phone with ID and selfie liveness checks, and a staff console lets onboarding and financial crime teams review the cases the rules cannot decide, through to an issued Irish IBAN.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab