Decision intelligence for retail & commerce

Know what to do next.

Five systems that disagree. One number you can defend. PerformHub reconciles your till, your shift reports, your online store, your ad platforms and what your stores type in — then tells you the action worth taking today.

Live on 13 stores, one online store and a separate Riyadh market — EGP and SAR, never mixed.

0
source systems reconciled
0
tables in the warehouse
0
rows under management
0
permission modules, 18 roles
0
scheduled jobs a day
0
AI actions from 14 engines
01 — The hard part

Five systems. One number.

Most of the work is not charting. It is making systems that disagree agree — and being explicit when they can't. Every argument about a figure traces back to which source it came from, so PerformHub fixes the order of authority once and applies it everywhere.

The till

Point of sale, live within minutes. The only place a receipt timestamp exists — so every sales-by-hour figure comes from here and nowhere else.

Authority · live & repair

Shift closing

One row per store per day, filed at close. The official end of day — but it lags one to two days, duplicates rows, and sometimes never sends a day at all.

Authority · closed day

The online store

Money comes from the platform's own analytics, never from our copy of the orders — rebuilding it from raw orders was 28% wrong on cash-on-delivery voids.

Authority · online money

Ad platforms

Three networks in one table — a row per date, campaign, ad set, ad and creative. Platform-attributed revenue is the ROAS basis; matched web revenue reconciles it.

Authority · spend & ROAS

What stores observe

Foot flow by hour, camera reports, supply pipeline, branch costs. An approved camera count overrides what the store typed — and the original is kept.

Authority · foot flow
The order, in one line. Live today → receipts. Official closed day → shift reports, with receipts rebuilding any day never filed. Online money → the platform's own analytics. Foot flow → approved camera count, else the store's entry. Sales by hour → always receipts.
02 — What it looks like

Today, as it happens.

Live sales straight from receipts, refreshed every five minutes, measured against the same day last week up to the same time of day. Below: a real deployment — thirteen Egyptian stores, eight months on record.

performhub · overview · september 2026
Net sales
0M
EGP
Transactions
0
+‎20.1% conv.
Avg transaction
0
EGP
Units per basket
0
17,543 units
Net sales by monthEGP · millions
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct*
* October to the 8th · 3.46M EGP on record
Sales by hourreceipt timestamps · illustrative day shape
11:00 — 23:00
Target achievementSep
0%
13.51M against a 15.78M target.
Every branch within ±1.5%.
Record integrity2,475 branch-days
2,240 filed at close 235 rebuilt from receipts

Four September days and sixteen April days were never filed. The repair job found them and recovered 8.2M EGP the business had simply not counted.

Traffic to purchaseSep
51,077
10,240
17,543
VisitorsTransactionsUnits
03 — The platform

Thirty-one modules. One permission model.

Every module is controlled per action — view, create, edit, delete, export, AI, manage — and per branch. A freelancer can file a content brief and never read anyone else's.

04 — Intelligence

It does not invent analysis.

The Action Center collects what every other module already recommends, scores it on impact, urgency, confidence and ease, deduplicates it, tracks it from open to done — and then measures whether it worked by comparing store sales before and after.

Markdown

Never below cost

Eligibility and protection scoring per style, depth curves capped at break-even, branch and size control, dry-run pricing with full revert.

Last piece

And the false ones

Finds genuine last pieces — and, more usefully, the false ones that should be consolidated across stores rather than discounted.

Expected stock

The day you run short

A day-by-day integer simulation per store: opening balance, pipeline arrivals, forecast demand. Committed and indicative variants.

The analyst

Forbidden from guessing

Ask in Arabic or English. For stock, hourly sales, online money and Riyadh it may not write its own query — it must use a validated path. Each rule exists because it was once answered wrong.

05 — The clock

It heals itself at 04:45.

Twenty-two scheduled jobs, each in a stated timezone. If a sync misses its minute it catches up, retries, and keeps re-checking until yesterday actually appears — because the reports database routinely does not have yesterday at 02:00.

every 5 min
Sales sync from receipts
every 15 min
Riyadh sync, last three days
01:00
Full online sync — products, orders, refunds, sessions
03:30
Nightly item sync — sales, stock, customers, staff
04:45
KPI gap self-heal — rebuilds any store-day the shift system never sent
05:10
Last-piece detection
05:40
Expected-stock baseline run
08:00
Morning digest to the team
06 — Honesty

It is built to say “not available” rather than produce a plausible number.

No year-on-year yet. Daily history starts February 2026. Every seasonality claim is labelled unavailable until the data exists — not estimated.

Attribute tagging is sparse. Across 48,845 items only 12.1% carry a gender and 10.8% a season. Untagged items show as “unknown” and are never guessed.

Cost is on 100% of items. Which is why margin is solid even where attributes are not.

A negative hour is real. It means returns exceeded sales that hour. It is shown, not hidden.

One field is quarantined. The stores' manual running total is demonstrably wrong — cash-only figures, shift resets, negative hours — so it can never be used as a sales number anywhere.

Historical stock is estimated. Only the current snapshot is stored, and that is stated wherever it appears.

07 — Markets

Two currencies that never touch.

Riyadh is not a fourteenth branch. It is a separate market with its own tables, its own currency and its own permissions — never converted, never added into an Egyptian total, and no Egyptian label ever appears on a Saudi page.

EGP · EGYPT
0 stores + online
442,240 customers on record, 94.9% with a phone number — which is what makes offline conversion matching possible. 49,771 online orders with real return reasons.
SAR · SAUDI ARABIA
0 market, fully separate
Syncing every fifteen minutes with its own receipts, employees, item master and uploaded stock counts. No foot flow exists there — so no conversion rate is shown, rather than one invented.

Stop arguing about the number.

A walkthrough takes thirty minutes and uses your own systems, not a demo dataset.