Sajjad Mahessar Good Merch Group Free audit
~/sajjad $ cat projects/gp-reporting ← cd ../projects Data & reporting

Weekly food & GP reporting

Live · runs weekly

Automated weekly P&L and gross profit reporting across venues, built from EPOS exports, supplier invoices, timesheets and operational logs. Now a full weekly operations report: trading, wages, food cost, controls, compliance, guests, draught yield and actions with named owners, plus monthly income reports.

Type
Reporting
Category
Data & reporting
Built with
Python · ReportLab · EPOS exports
Project
4 of 37
WEEKLY FOOD CONTRIBUTION 0 WK 1-£758 +£579WK 2 £1,337SWING SALES +48% · LABOUR +5% · GP 43.7% TO 59.3%
Weekly food contribution — loss to surplus

Conventions established

  • GP calculated on sales net of VAT rather than the till's own net figure, with purchases-based cost of sales.
  • Inter-site stock transfer adjustments, and supplier invoice splitting by sub-total with non-food consumables excluded.
  • Checksum-based duplicate control across shared supplier accounts — worth around £600 a week if double-counted.
  • A labour apportionment model for chefs covering multiple sites, plus break deduction and shift rounding rules for hourly kitchen staff.

How it has grown

  • Food P&L became a full operations report: trading, floor and kitchen wages as a share of net revenue, what sold and who sold it, voids and discounts by till user, cleaning and temperature compliance, a staff incentive scheme, guests and bookings ahead, and actions with a named owner.
  • Staff-app data comes from one read-only SQL export run every Monday. It works out its own dates and strips emails, phones, PINs, pay and bank details before anything leaves the database.
  • Room revenue is spread across the nights stayed, from the booking system rather than the till, and last week is restated on the same basis so the comparison is like for like.
  • The same report now runs weekly for a second group’s drinks-led sites, stacked in one PDF. Sales reconcile to the penny against the printed till totals, and a reusable read-only SQL pull covers hours, compliance, cash-ups, bookings and members.
  • Nothing is left blank or guessed: a missing record is reported as “not received”, carried as an action, and counted as a repeat until it arrives.
  • Dashboard-style vector charts: KPI cards with sparklines, ring gauges against target, a radar scorecard and pictogram grids. Monthly income reports split POS exports into drinks, food, rooms and tips by payment method.

Result

Turned a £758 weekly food contribution loss into a £579 surplus in one trading week — a £1,337 swing — with sales up 48% against labour up only 5%. Site GP moved 62.7% to 67.1% and 43.7% to 59.3%. Agency kitchen cover eliminated entirely by restructuring head chef deployment.

Schematics

The front page of the weekly report with figures redacted
The manager targets page listing five weekly targets per site
WEEKLY REPORT · FIXED STRUCTURE SALES NET OF VATPURCHASESSTOCK TRANSFERS COST OF SALESGROSS PROFITLABOUR CONTRIBUTIONSITE COMPARISONWASTE SUPPLIER SPLITDUPLICATE CHECK MANAGER TARGETSBASIS OF PREPARATION EVERY FIGURE TRACEABLE TO A SOURCE DOCUMENT
GROSS PROFIT · BEFORE AND AFTER 70%60%50%40% 62.767.1 SITE A 43.759.3 SITE B ONE TRADING WEEK · SALES +48% · LABOUR +5%
Eleven fixed sections plus targets and basis of preparation
Client platform

Serviced-apartment access & pricing platform

Door codes that only exist during the stay

Node.js / ExpressSQLiteAES-256-GCMHMAC tokens
Security audit

Database security audit & remediation

55 production tables locked down live

PostgreSQLRow-level securitySQL migrationsSECURITY DEFINER
No charge

I’ll find the money before you pay me anything.

Send me your software subscriptions and I’ll come back with what’s replaceable and what it’s worth — free, and yours to keep either way. How it works →

Contact

Want the same done to your cost base?

Open to operations, automation and technical operations roles — and to talking with anyone running a multi-site business who suspects they're paying for software they could own instead.