A business, seen by the hour.
Raw transactions, hundreds of thousands of them, turned into a dashboard that tells an owner in minutes how the business is doing: which hours pay, whether the hours they staff earn their cost, where the profit really comes from, and what needs to change.
The worked example is a two-branch retail agency of a national payments network, with four and a half years of complete transaction history. The tool is general: any business whose activity arrives as transactions can track its performance, its health and the value of its working hours the same way.
The data comes in however it suits the business: from an API on a fixed schedule or in near-real time, or from files at whatever cadence they arrive. Each run rebuilds the dashboard, an independent audit proves it matches the source, an AI agent writes the read-out, and the result is available in real time from anywhere, on desktop or mobile.
- Function
- Operations and finance, business performance
- Solution
- A self-contained dashboard rebuilt on every run, with an independent audit
- Intake
- An API on a fixed schedule or near-real time, or files at any cadence
- History
- Four and a half years, complete from the business's first day
- Audit
- Every period reconciled against the source, worst deviation under two euro cents
- Runs on
- In the cloud or on your own infrastructure, on any device, desktop or mobile
The problem.
The only data the owner had was a monthly export per branch from the network's back office: one row per transaction, in a legacy encoding, with amounts in the old currency for the first years and in euro after the changeover. Merchants and branches had been renamed along the way. Everything worth knowing was in there, and none of it was visible.
Two questions mattered most: where the profit actually comes from, and whether the hours the business staffs match the demand that walks in.
The question was never whether the data existed. It was whether anyone could read it before the next month's export arrived.
What we built.
Any source, one pipeline
Transactions arrive from an API on a fixed schedule or as it happens, or from files at whatever cadence they come, as they did here. Each run regenerates the dashboard: currencies converted at fixed rates, duplicates removed, renamed merchants and branches normalized so every history stays continuous.
The core views, shared filters
Overview, rankings, trends, profit per hour and analyses, all driven by the same filters for merchant, branch, employee and date, each compared against the preceding period of equal length. What is specific to a business comes as an add-on, such as cash-flow monitoring for one that handles cash.
Profit by the hour
Normalized per working day, with a week-by-week tracker for any chosen hour, built to judge a change to opening hours on evidence.
Audited against the source
An independent script re-reads the source with separate logic and reconciles every period against the dashboard, down to the cent.
Available anywhere
Hosted in the cloud or on your own infrastructure and available in real time from any device, desktop or mobile, with a backup of the whole project on every run.
Analysis written for you
After each run an AI agent writes the read-out: what moved, why, and what to watch.
How it flows.
Each run turns the raw transactions into every deliverable, whether they arrive by API or as files, and a separate audit path re-derives each period from the source to confirm the build.
Transaction data
- An API on a fixed schedule, or continuously
- Or files at any cadence, as in this case
- Any encoding, any currency
Build pipeline
- Converts currencies at fixed rates
- Removes duplicate rows
- Normalizes renamed merchants and branches
One run, every deliverable
Aggregated data
- Hundreds of thousands of transactions
- Cleaned and reconciled
- Ready to filter by merchant, branch, employee and date
Live dashboard
- The core views, plus add-ons for what is specific to the business
Any device
- Desktop and mobile, in real time
Backups
- The whole project, on every run
An independent audit re-reads the source with separate logic and reconciles every period against the build.
What the owner sees.
Operations
August loaded, two branches
- Operations
- 10,233
- Turnover
- €416k
- Profit
- €6,385
- Profit per staffed hour
- €13.70
| Service | Share of transactions | Share of profit | Trend |
|---|---|---|---|
| Payouts and transfers | 13% | 42% | Up |
| Account top-ups | 45% | 23% | Down |
| Bill payments | 27% | 22% | Steady |
| Mobile and internet | 12% | 10% | Steady |
| Other | 3% | 3% | Steady |
- Payouts and transfersUp
- Share of transactions
- 13%
- Share of profit
- 42%
- Account top-upsDown
- Share of transactions
- 45%
- Share of profit
- 23%
- Bill paymentsSteady
- Share of transactions
- 27%
- Share of profit
- 22%
- Mobile and internetSteady
- Share of transactions
- 12%
- Share of profit
- 10%
- OtherSteady
- Share of transactions
- 3%
- Share of profit
- 3%
What the data showed.
The findings that changed how the business is run, redrawn from the dashboard.
Payouts and transfers
Two services against the rest of the mix
- Share of transactions13%
- Share of profit42%
Activity by weekday and hour
Transactions, full history
Profit per hour
Average per working day, both branches
Seasonality
Each month's profit as a multiple of its year's monthly average, three full years
Profit by year
Indexed to the first, partial year
What changed.
The real profit mix
Payout and transfer services turned out to generate 42% of the profit from 13% of the transactions. Promotion was redirected accordingly, and one branch's underuse of these services became a concrete growth target.
Staffing judged on evidence
Hour-level profit showed the schedules already match demand almost perfectly. The one clear misfit was a nearly dead half-hour in one branch's weekend schedule, and a proposed evening extension at the other branch was re-costed against its own late-day demand, with the tracker to judge it already in place.
Growth told apart from seasonality
Profit grew almost sevenfold from the partial first year to the third full year, and the year-over-year overlay now separates genuine growth from a seasonality that peaks in December and dips every January.
Numbers that can be trusted
Every rebuild is reconciled with the source data by an independent script, whether that data arrived by API or as files. It caught a rounding defect that had silently understated profit, and the deviation across the full history is now under thirty cents.
Available anywhere, in real time
The dashboard is hosted in the cloud or wherever the business prefers, and it is available from any device, desktop or mobile, with nothing for anyone to maintain by hand and a backup on every run.
Where else this applies.
Any business whose transactions can be pulled from an API or exported as files can read itself this way: retail chains, franchise networks, clinics, logistics depots, agencies with several branches. The questions are the same everywhere: how the business is performing, whether the hours and people it pays for earn their cost, and what to change. The data already holds the answers; the work is cleaning, reconciling and presenting it, and writing the analysis so nobody has to.
What it needs is small: access to the transactions, by API or as files, a written version of the rules (names, currency, opening hours), the questions the owner actually asks, and one person to read the summary.
More work.
AI automation, finance operations
Autonomous accounts payable
An AI agent that turns a shared folder of invoices and bank statements into a maintained payables ledger, a live dashboard and a payment tracker, with no manual data entry.
Read the case studyAI automation, finance operations
Bookkeeping review automation
An agent that reviews every ledger posting against years of audited bookings, the invoice register and the source documents, and returns its feedback as a short, evidence-scored queue.
Read the case study
Tell us what you're working on.
A 30-minute conversation about your business, and a clear view of what we would do first. No obligation.