Skip to main content
All work Case study · St. Roch Market

Vendor settlements went from six hours a week to about ten minutes.

I operate St. Roch Market: eleven independent vendors and a bar under one roof, in a building that has been trading food since 1875. Every Monday, each vendor needs to get paid the exact right amount. This is the system that does it.

11vendors settled weekly
6h → 10mweekly reconciliation work
2023in daily production since

The state before

Each vendor has their own commission rate, delivery fee split, daily minimum, carry-over balance, and a pile of linen and supply adjustments. The reconciliation lived in Google Sheets, stitched to Square exports by hand, after closing, with a tired brain.

It took about six hours a week and it had to be perfect, because these are the numbers a vendor gets paid on. Get them wrong and you lose vendor trust, and vendor trust is the operation.

What I built

Food Hall Manager pulls live sales data from Square at vendor level, applies each vendor's actual rules, and produces a settlement statement that explains itself. Every line item traces back to the Square transaction it came from.

What changed

Settlements run on a button, and a human reviews for about ten minutes instead of rebuilding spreadsheets for six hours. Vendors stopped emailing to ask if their number is right. They log in and see the answer, down to the line items. When a number gets disputed, the audit log answers in one search.

A separate system for the managers

The vendor portal is for vendors and nothing else. The people running the building use a different app entirely, the Manager Portal, and the two never cross.

The Manager Portal keeps every manager on the same page: shift notes they all share, today's sales and who's clocked in where, and the entire building's inventory visible at all times. The bar inventory also syncs against Square sales data, so if bottles are leaving faster than the register says they should, shrinkage shows up in days instead of months.

The Manager Portal opening shift view: previous shift notes, special projects, and the opening checklist.
Shift handoffs: yesterday's notes wait for today's manager.
The Manager Portal sales-based ordering screen, turning Square register sales into a suggested bottle order.
Register sales from Square become a suggested bottle order.

What I'd do differently

Three things I got wrong and fixed the hard way.

Underestimated the edge cases

The first commission engine handled the clean cases and broke on the vendors with custom hybrid deals. The rewrite around per-vendor rule sets should have been the day-one design.

Built the vendor portal too late

For six months I ran settlements without giving vendors their own view, and answered "is my number right?" by email. The portal ended those emails immediately. It should have been there from day one.

Audit logging came second

Before the audit trail existed, reconstructing a disputed number was painful. Now every state change is logged from the start, on everything I build.

Operating a food hall or multi-vendor space?

The system is built and it fits other buildings. Your vendor deals go in free, whatever shape they're in.

Start a conversation

Settling 11 vendors every week at St. Roch Market since 2023.