From hand-built spreadsheets to a real-time operating panel

The Fitzgerald is a restaurant group with several locations around Valencia, Spain. We built the internal system their operation never had.

The problem

Every The Fitzgerald restaurant runs on AgoraTPV, a third-party point-of-sale system, as the only source of operational and sales data. But understanding what was actually happening in the business (sales, food cost, consumption, refunds) depended on spreadsheets built by hand every week: someone had to open a native point-of-sale report, copy the numbers, and rebuild the sheet.

There was no central operating panel, no automation of those reports, no structured way to manage incidents across restaurants, and no structured way to collect information from the teams on site. Every piece of management lived in someone's head, or in a different spreadsheet.

What we built

An internal automation panel built to fit this business, and expanded alongside the client over months. Not a generic product forced to fit.

Real-time automations and reports

An automations panel with live execution status, and access control split by role (what you can do) and by location (what you can see).

An AI chat over the real data

An assistant that answers questions about the business with real access to the panel's metrics, respecting the same access control as the rest of the app.

5 automated reports backed by the point of sale

Sales by channel, monthly consumption, theoretical food cost, POS sales, and refunds, generated directly from the point-of-sale system's data.

Incident and maintenance management

An operational board per restaurant (open, in progress, resolved, closed) with comments, attachments, and an automatic email alert on every new incident.

Forms with AI-generated summaries

Internal forms that generate an automatic executive summary of every response, and can open a maintenance incident with no manual step.

The technical challenge: integrating with a system nobody had documented

AgoraTPV publishes an integration guide built around an official API as the recommended path. We built our first client against that API, and only when testing it against this client's real system did we discover that this particular installation didn't have that module enabled: the only real access was a direct connection to the point-of-sale system's database.

That schema is not documented anywhere: over 240 tables, with no public reference. We built our own exploration tooling (listing tables, relationships, values, samples) to understand, field by field, what each piece of data actually meant before building a single report on top of it.

No figure was accepted because it "looked reasonable". Each of the 5 reports was manually reconciled against a real reference spreadsheet until it matched to the cent. That process surfaced details nobody could have guessed from the outside: the sales channel hidden as inconsistent free text, amounts with and without tax mixed across different reports, or fields on a refund invoice that meant the exact opposite of what their names suggested.

When a figure doesn't add up, we say so

A sixth report, for the giveaways the business hands out, was tested against five different hypotheses, and none of them reproduced the real numbers. Instead of forcing an unreliable approximation, we parked it and documented why: we'd rather say "we don't know yet" than ship a number that doesn't add up.

A product that evolves with the client, not a fixed list of requirements

The AI-generated update report that summarizes each form for the CEO started as a simple copy-paste text. After three real rounds of feedback, it became a full system: configurable email accounts, reusable tone templates trained on the CEO's own real emails, and a one-click verified send.

We also knew when to stop: a complete feature for importing data tables from Excel was built, expanded, and fully removed once it stopped delivering real value. It didn't stick around as dead code waiting for someone to need it.

Does your business still run on spreadsheets and WhatsApp?

This is how we work: we understand your real operation and build, from scratch, the automation you need.