Skip to content

Twelve weekly spreadsheets, three weeks late

Every general manager built their own weekly return and emailed it on Tuesday. By the time head office could compare twelve sites, the week was three weeks old.

Client
A twelve-site hospitality group
Sector
Hospitality
Duration
12 weeks
Year
2026
Tillsight
Laptop screen of the weekly position for week 37 across all twelve sites: net sales of £273,310, labour at 26.8% against a 28% target, covers and spend per head, a chart of labour by day with Friday the only day over 30%, and a table of the twelve sites ranked on net sales showing each day's labour, with Friday marked in red at Albert Dock, Deansgate and Bold Street.
Twelve sites side by side, with a cover, a labour hour and a cost of sale meaning the same thing at each. Only then could one site be judged against another.

Weekly numbers ready

Before
~3 weeks later
Now
06:00 Monday

Time consolidating

Before
~2 days / week
Now
None

Sites comparable

Before
0 of 12
Now
12 of 12

Labour overrun caught

Before
After the week
Now
Before it is published

The problem

The group ran twelve sites and about 240 staff on roughly £14m of turnover. Every general manager produced a weekly return in a spreadsheet they had built themselves, and emailed it on Tuesday.

Head office consolidated the twelve by hand, which took most of two days. A bad week surfaced about three weeks after it happened, by which point the same week had been run three more times.

Takings came from the tills, cost of sales from the stock count, and labour from the rota. All three existed in systems the group already paid for.

What we found

The twelve spreadsheets did not agree on what they were measuring. Four counted a cover as a booking, the rest counted it as a person. Two put salaried managers in the labour line and ten did not.

Consolidating them produced a group total and nothing a single site could be judged against. The operations director had been making site by site decisions on figures that meant different things at each site.

Once a year of history was put on the same definitions, the labour overruns clustered hard on Fridays, and almost entirely at the four largest sites.

How we got there

Twelve weeks. The tills, the stock count and the rota already held every number. What the group lacked was agreement on what the numbers meant, and people had to settle that before anything could be built.

Agreeing what a cover is

Twelve general managers each had a spreadsheet they had built and would defend. The definitions were settled with all of them in the room, one line at a time: a cover is a person, and salaried managers count as labour. Every site's past year was then restated on the new definitions, so no site looked worse overnight without an explanation.

A year of Fridays

With a year on one set of definitions, we drew labour against sales for each day of the week. Friday stood out at the largest sites, and the cause was on the rota. Shifts were starting early in the afternoon for an evening that did not get busy until seven.

A forecast managers could argue with

A rota can only be priced against a forecast, and a general manager will not trust one they cannot see into. Ours is deliberately simple: the same day in recent weeks, which the manager can adjust for what the system cannot know. We checked it by pricing past paper rotas on the screen to see whether it would have caught the Fridays that overran.

The night ends after midnight

The first version closed each day at twelve, which put the last hours of a Saturday night into Sunday. Every site now has its own end of day, set to when it actually shuts, and the week closes once the last site's tills have been read.

What we built

The rota costed before it is worked

Shifts are priced against the sales forecast for that day, so a Friday that will overrun is visible on Tuesday when it can still be changed.

One definition, twelve sites

A cover, a labour hour and a cost of sale mean the same thing everywhere. Comparing one site against another only became possible after that.

Tablet screen of next week's front of house rota for one site, still a draft: eight people's shifts grouped under management, bar and floor, each day's sales forecast, hours and labour cost, and Friday marked at 35.2% of its forecast against a 28% target, with the four early Friday shifts outlined.
Phone screen for one site on a Sunday morning: Saturday's net sales of £6,700 with 244 covers at £27.46 a head, read from the tills at 02:11, sales by the hour with the busiest at 20:00, and each day of the week so far with the time its tills were read, Sunday still trading.

Takings straight from the EPOS

Sales read from the EPOS at each site overnight, so the week closes itself. No general manager types a figure in.

Phone screen of the Monday position for week 37: net sales of £273,310 across twelve sites with labour, covers and spend per head, Friday flagged at Albert Dock, Deansgate and Bold Street, and the sites ranked on net sales below.

The Monday position

Twelve sites ranked on one screen at six on Monday morning, with the flags attached to the day they happened on.

Afterwards

The group did not use this to cut hours. They moved them, mostly off Friday afternoons and onto Sunday, which had been understaffed at four sites for a year without anyone being able to prove it.

The two days a week that went into consolidating did not come back as savings either. That person now spends them on supplier pricing, which the finance director considers the better trade.

Built with

  • TypeScript
  • React
  • Next.js
  • PostgreSQL
  • Prisma
  • Scheduled overnight jobs
  • Lightspeed EPOS API
  • Xero Accounting API
  • Tailwind CSS
  • Hetzner

More case studies

Is this your problem too?

If any of the above sounded familiar, describe your version of it. The first conversation is about whether software is the right answer at all.

From £10,000Most projects land between £15,000 and £55,000.