HOSPITALITY · 2022-2025

Restaurant ERP | Case Study

POS, inventory, recipe costing, procurement and multi-branch accounting for restaurant groups.

70+
Branches
11%
Food cost cut
45K
Orders/day
Restaurant ERP, Floor POS and the head-office margin console
Floor POS and the head-office margin console
ROLE
Architect & lead engineer
DURATION
3 years
TEAM
8, engineering, design, ops consultants

00 · CONTEXT

An end-to-end system for multi-branch restaurant groups: POS on the floor, inventory and recipe costing in the back, procurement and consolidated accounting at head office, across 70+ branches and 45K orders a day.

01 · PROBLEM

Multi-branch groups couldn't tell which outlet was profitable, inventory, sales and purchasing lived in different systems.

02 · STRATEGY

Anchor everything to the recipe. Once every dish has a costed bill of materials, sales instantly become margin data.

03 · DESIGN

A touch-first POS for the floor and a dense analytics console for head office, built from one component library.

04 · ENGINEERING

Offline-first POS with conflict-free sync, event-sourced inventory movements, and nightly consolidation jobs.

05 · CHALLENGES

No branch-level truth

Sales, inventory and purchasing lived in different systems, so nobody could say which outlet actually made money.

The network drops mid-service

A POS that stops when the internet does is not a POS.

Inventory drift

Stock counts diverged from reality within days, making food-cost numbers unusable.

06 · PROCESS

01 · Anchor on the recipe

Every dish got a costed bill of materials. Once that existed, each sale automatically became margin data and each order became a stock movement.

02 · Offline-first POS

Orders are written locally and synced with conflict-free merge rules, so service continues through outages and reconciles afterwards.

03 · Event-sourced inventory

Stock is a ledger of movements, not a mutable number, making variance traceable to the shift that caused it.

04 · Nightly consolidation

Per-branch books roll up into group-level P&L overnight, with exceptions surfaced to head office in the morning.

07 · THE SOLUTION

  • Touch POS with offline mode and shift management
  • Recipe and bill-of-materials costing
  • Purchase orders, supplier price tracking and GRN
  • Event-sourced stock movements with variance reports
  • Real-time per-branch P&L
  • Central menu and price management across branches

08 · ARCHITECTURE

  • React web console + Electron POS client
  • Node.js services on PostgreSQL with event-sourced inventory
  • Conflict-free sync layer for offline order capture
  • Nightly consolidation and reporting jobs

09 · RESULTS

  • 11% reduction in food cost within two quarters
  • Real-time per-branch P&L
  • Zero downtime service during network outages

10 · WHAT IT TAUGHT US

Costing the recipe was the unlock. Every report the group asked for later turned out to be a query on top of that one model.

11 · STACK

ReactElectronNode.jsPostgreSQLEvent sourcing