Field sales · Distribution · Merchandising

The intelligence runs
on the phone.

Your salesman is standing in a cold room with no signal, guessing. Ours knows what this shop owes, what it usually buys, what it stopped buying, and what to say — because the data and the AI are on the handset, not in a data centre. It works in flight mode. It costs nothing per call. And it tells you where the money is leaking before the month closes, not after.

  • 150mson-device shelf
    recognition
  • 0/scancloud cost for
    every AI feature
  • 100%of field reads
    served offline

What you actually get

Twelve things nobody else
in this market ships.

In the order the day happens: three things your salesman holds in his hand, five waiting for you when he's done — and four in the hands of the shop he just left. Every screenshot is the real product against a demo dataset, names and figures anonymised and software not; the device panels are its own modules, rebuilt.

01 · Sales Co-pilot

A coach in every
salesman's pocket.

Your best salesman remembers that this shop always takes croissants on a Wednesday and hasn't ordered in three weeks. Your other twenty don't. The Co-pilot does — on the phone, before he walks in, with no signal.

  • Likely order — scored from this store's own rhythm
  • Leave-money — what he's about to walk past
  • Dead stock — what's rotting in his van, and who buys it

02 · ShelfLens AI

Photograph the shelf.
Get the audit.

A merchandiser with a clipboard takes twenty minutes a store and guesses half of it. Point the phone at the shelf instead: it finds each product, matches it to your catalogue, and fills in the scorecard — in about 150 milliseconds, on the handset, in flight mode.

  • New product? Upload photos. Never retrain a model.
  • Teach one phone, the fleet learns — corrections sync
  • QAR 0.00 per scan, permanently — there's no cloud call to bill
How ShelfLens works

03 · Voice Navigation

Hands full of stock?
Just talk to it.

A van salesman has a crate in one hand and a phone in the other. Tapping through six screens to add twelve cases is how orders get typed wrong. So he says it instead — and the speech model runs on the phone, which is why it still works in the basement.

  • On-device speech — no cloud, no streaming, no per-minute bill
  • Navigate and transact — not just search
  • Works where the signal doesn't, like everything else here

04 · Command Center

Monday's report,
on Monday morning.

Most supervisors find out what went wrong when the month closes. This is one page that opens with a sentence in plain English — "your fleet can win QAR 7.4k today, but QAR 50.5k is bleeding" — then names the store, the salesman and the amount, sorted by money.

  • The Leak Ledger — where value is slipping, priced
  • The Action Queue — do these next, ranked by money
  • No leaderboards, no coverage %. Those are reports, not decisions.
Command Center: a daily briefing in plain English, a Money in Play tile showing QAR 57.9k, a Leak Ledger and an Action Queue ranked by money

06 · Predictive Load

Load the van for
what actually sells.

Before the truck is packed, the office already knows what this route's stores buy on a Thursday. Predictive Load blends same-weekday history, trailing averages and store-level demand into a suggested van load per SKU — then spawns the load request in one tap.

  • Blended forecast — same-weekday, 4-week average and 7-day trend, per SKU
  • 119 SKUs across 21 stores, scored and ranked for one route's beat
  • Warns before you over-load — flags any line that exceeds warehouse stock
Predictive Load page: suggested van load per SKU for route TRD101's beat, blending last-week sales, same-weekday sales, four-week average and sales trend across 119 SKUs and 21 stores

07 · Journey Plan & Route Optimisation

The right stops,
in the right order.

The journey plan decides which stores a route sees on which day, populated into a beat the salesman opens offline. Then the optimiser orders those stops on the real road network — not straight lines — and however many trips it took, the day cashes up as one.

  • Journey Plan — a weekly beat pattern per route, populated into daily visit lists
  • Route Optimiser — real OSM road routing, live map, one-tap apply
  • 416 km → 239 km, same 21 stops — a 42% shorter drive
  • Every trip clones its own beat, stitched to one parent day
Smart Route Optimizer: 21 mapped stops re-sequenced from 416.2 km and 419 minutes down to 239.5 km and 260 minutes — a 42% saving — with the old and new paths overlaid on a live road map of Qatar
Real roads, not straight lines: 416 km of driving down to 239. Same 21 stops.

09 · Customer Portal New

The order you never
sent anyone to take.

Your rep sees a shop once a week. The rest of the week it orders on WhatsApp, badly, or not at all. So we gave the shop owner their own app — on your brand, your catalogue, your prices, your credit rules — running the same promotion engine as the van, so online and on the truck can never quote different money.

  • It knows when your van is coming — the cutoff is computed from the real journey rules, never guessed
  • It knows what's on the truck — and stays silent rather than guess when it can't be sure
  • Live tracking — stops counted from the driver's real check-ins, ETA learned from today's own gaps
The whole portal, product by product

10 · Camera & voice ordering

Point the camera.
Or say it in Arabic.

A shopkeeper at their own shelf shouldn't have to find a product in a list of two thousand. Scan the barcode, photograph one product, or photograph the whole shelf — and if their hands are full, talk to it. In English or Arabic, matched against your Arabic product names, never a translation.

  • The catalogue teaches itself — an unknown barcode becomes a suggestion your team approves
  • One vision library, both ends — the portal matches against the same references the van's ShelfLens uses
  • A number before "ml" is the product; before "cases" it's the quantity — the rule that stops "the one litre juice" ordering one unit
  • Confident matches act. A close call between two pack sizes stops and asks.

11 · Autopilot replenishment

A standing order
that knows when to stop.

Before each delivery day, Autopilot builds the basket from the shop's own rhythm — learned per product and per unit from their own invoices. One tap to approve, or let it place itself. The interesting part isn't what it orders. It's the five things it refuses to do.

  • Never a product they've never bought, and never above their own cap
  • Never twice for one delivery day — a check and a unique index, because one of those is a promise and the other is a guarantee
  • Never auto-places into trouble — overdue or short on credit and it proposes instead, and says why
  • All five enforced on the server, so they hold for an API caller too

12 · Grow

Your data, turned
around to face them.

You already know what shops like theirs sell. They don't — and that gap is the single most valuable thing a distributor owns. Grow hands it back as three findings that each end in an Add button: what peers stock and they never have, what they under-buy, and what they've quietly stopped ordering.

  • No peer is ever named, and nothing shows unless at least five other shops are in the set — with two or three, an "average" is one competitor's order book
  • Median, not average — one hypermarket would otherwise tell a corner shop it under-buys by 28×
  • Compared in money, never in units — a "carton" isn't the same thing in two shops' order books
  • Sized to one delivery, not one month — the van comes weekly

And the boring half

The whole cycle runs
on one data model.

From the van on the route to the claim against the supplier. Nothing here is an integration, a second login, or a nightly file drop.

Field apps

One APK, five personas — VanSales, PreSales, Delivery, Driver, Merchandiser. Every drawer item, action and widget is toggled per role from the portal.

Day lifecycle · Load & unload · Stock audit · Day-close gates · Bluetooth print

Merchandising & on-device AI

Perfect Store scoring weighted by revenue, ShelfLens photo recognition running on the handset, and a Fix-It loop that turns a gap into a one-tap order.

Perfect Store · ShelfLens · Planogram · POSM · Competitor intel

Intelligence

The app thinks — and shows its working. Sales Co-pilot on the device, Command Center for the supervisor, and coaches on load, target and beat.

Co-pilot · Command Center · Load Coach · Target Coach · Route Optimizer

Analytics

Xpress BI and Xpress Dashboards — a layered query engine your own team drives, plus a four-tab executive surface that loads one light call per tab.

Report builder · Dashboards · Executive · EOD field reports

Distribution & supply

The DMS half: costed purchase orders, GRN shipments that must itemise every shortfall by reason, returns to principal, and a claims engine that is data, not code.

PO · GRN · Purchase return · Claims · Stock ledger · Warehousing

Financial

A single-source-of-truth money model — receivables, credit wallets, an append-only store ledger, multi-mode collections, tax, pricing and a branded PDF suite.

AR · Credit notes · Collections · Pricing · Loyalty · Invoicing

Platform

The part nobody demos and everybody depends on: the sync engine, the promo engine, multi-tenancy, device binding, voice, surveys and theming. This is where the years went.

Sync · Promo engine · Journey & beats · Multi-tenant org model · Voice · Surveys

Your brand, not ours

White-label it
to the last pixel.

Most software makes your team live inside the vendor's brand. Ours disappears behind yours — the whole web portal and the login your salesmen open every morning, recoloured from a settings screen with a live preview. No CSS, no rebuild, no ticket in a queue.

Web portal appearance

Recolour the whole
portal, live.

Brand colour, page and card surfaces, the sidebar and topbar, borders — even the card shadow. Every token, with a live preview beside it. The rest of the app already reflects each change as you make it; the preview just gathers the key components in one place.

  • Every surface, not a logo swap — sidebar, topbar, buttons, inputs, tables
  • Light and dark, saved as named presets — go live with one click
  • No CSS and no redeploy — it's a settings screen, not a support ticket
The web portal Appearance customizer: brand colour, page and card surfaces, primary and secondary text, sidebar and topbar chrome, borders and card shadow — each with a hex value — beside a live preview of buttons, inputs and a sample card

Login customizer

The login screen,
in your colours.

Start from a gallery of ready-made looks — Ocean Split, Sunset Glow, Corporate Navy — then drop in your own logo, imagery and copy. A desktop, tablet and mobile preview shows exactly what your team will open every morning, before you set it live.

  • Ten templates to start from, or build your own from scratch
  • Desktop, tablet and mobile preview — what you see is what ships
  • Save as many presets as you like; exactly one is live at a time
  • The same brand reaches the mobile app your salesmen carry
The Login Customizer: a gallery of login-screen templates (Classic Light, Ocean Split, Sunset Glow, Corporate Navy and more) beside a live desktop preview of a branded login with a custom logo, headline and background imagery, and desktop/tablet/mobile preview toggles

Why it holds up

Three decisions that make
all of that possible.

01

The device is the computer, not the terminal.

Reads never touch the network — that's enforced as an architectural law, not a preference. A salesman in a basement aisle with no signal gets the same Perfect Store score, the same promo maths and the same shelf recognition as one standing outside. Sync is how data leaves; it is never how a screen loads.

Offline-first · per-salesman SQLite · self-healing schema

02

Money, not compliance percentages.

A shelf gap isn't "78% compliant" — it's QAR 951/week at stake, because compliance is weighted by each SKU's real revenue run-rate. The same out-of-stock on a slow SKU is worth zero, and we say so. Findings arrive sorted worst-first with a named action attached.

Exposure-weighted scoring · worst-first · one-tap fix

03

Deterministic and explainable. No LLM in the loop.

Every number drills to the records that produced it. The Load Coach literally shows the per-store table that sums to its forecast. Nothing is a black box, nothing is metered per token, and nothing changes its answer between demo and board meeting.

Auditable · on-prem capable · zero inference cost

Custom software

The same engineering,
pointed at your problem.

MSFA is our proof of work, not our limit. The team that built a 250-table platform with an offline sync engine and on-device AI also builds bespoke systems — held to the standard above.

Field & offline systems

Anything that has to work where the signal doesn't: sync engines, conflict-free local writes, idempotent queues, deterministic IDs across a fleet of devices.

On-device & applied AI

Vision and speech that run on the handset — no per-call billing, no data leaving the device. We ship what's verified on real hardware, and say no to what isn't.

Data platforms & BI

Query engines, self-service report builders, dashboards and warehouse modelling — built so your analysts don't queue behind a developer.

Enterprise back-office

Approval matrices, multi-tenant org hierarchies, document generation, imports that never destroy data, and audit trails that survive a real audit.

Mobile apps

React Native at production scale — new architecture, native modules where it counts, and the build discipline to actually ship a signed APK on a schedule.

Modernisation & rescue

Legacy systems ported without a big-bang cutover, and stalled builds diagnosed honestly — including when the right advice is to stop.

How we work

See it against your routes.

The fastest way to judge this is a demo on data that looks like yours — your SKUs, your channels, your territory. Bring your hardest question about offline.