All work Case study · St. Roch Market

From midnight spreadsheets to push-button settlements at a 150-year-old food hall.

Eleven independent vendors. One bar. Daily handoffs, weekly settlements, fractional cents that have to reconcile. Generic accounting software was never going to do this. So we built what would.

11vendors settled weekly
~6hmanual reconciliation, per week, eliminated
150yrold New Orleans food hall
2023in daily production since

The state before

St. Roch Market is a public food hall on St. Claude Avenue in New Orleans — eleven independent vendor businesses operating under one roof, sharing a bar, sharing service infrastructure, sharing a building that has been continuously food-trading since 1875. Every Monday, the back office had to settle the previous week's numbers across all eleven vendors. Each had its own commission rate, its own delivery-fee split, its own daily minimum, its own carry-over balance, its own pile of linen and supply adjustments. The reconciliation lived in a labyrinth of Google Sheets stitched to Square POS exports by hand.

Settlements took about six hours a week. They were error-prone. They were the kind of work that gets done after closing, with a tired brain, and a tired brain reconciling fractional cents across eleven businesses is how mistakes happen. Mistakes erode vendor trust. Erosion of vendor trust erodes the operation.

What we built

Food Hall Manager pulls live sales data from Square at vendor-level granularity, applies each vendor's commission structure with its actual rules — tiered commission, delivery-fee splits with configurable percentages, daily minimums with optional grace periods, linen and supply charges as adjustable line items, balance carry-over from previous weeks — and produces a settlement statement for each vendor that explains itself. Every line item is traceable back to the Square transaction it came from.

The state after

Settlements run on a button. The vendor portal means vendors stop emailing to ask "is my number right?" — they log in and see the answer for themselves, with the underlying line items. Reconciliation went from six hours of fragile spreadsheet work to about ten minutes of human review on a screen that's already done the math. The audit log means an accountant or vendor dispute is a search query, not an archaeology dig.

Manager Portal sits beside it — handling shift checklists, bar inventory with par-level alerts, real-time labor cost monitoring against the Square sales coming in, and a notes archive for the things that happen during service that you'll want to remember on Monday.

We were doing vendor settlements in spreadsheets at midnight. There had to be a better way. There wasn't one we could buy, so we built it inside the building it runs.
— Kevin Pedeaux, Founder · CoreRail

Lessons we earned the hard way.

Intellectual honesty is a credibility signal. Here's what we got wrong, what we changed, and what we'd start with if we built this again.

Underestimated edge cases

The first commission engine handled the clean cases beautifully and broke on the half-dozen vendors with custom hybrid structures. The rewrite around configurable rule-sets per vendor came later than it should have. We'd model that flexibility on day one now.

Built the portal too late

For the first six months we ran the system without giving vendors their own view. The number of "is my number right?" emails finally pushed us to ship the vendor portal — and the trust upgrade was immediate. The portal should have shipped with v1.

Audit logging earlier

Full audit trail came in v2. Before that, when a vendor disputed a number, the reconstruction was painful. If we did this again, every state-change would be logged from the first commit.

Operating a food hall or multi-vendor space?

The patterns generalize. The software is mature enough to deploy elsewhere. Let's talk.

Start a conversation