______________________
RESTAURANT PAYROLL
Synapse Soltuions / Client / Dyanamic Arrays, XLOOKUP / Dec. 2025
Currently seeking knowledge in the airline industry -- whether you work in operations or know someone who does, I'd genuinely love to connect.
Synapse Soltuions / Client / Dyanamic Arrays, XLOOKUP / Dec. 2025
None of the people working at the restaurant knew anything about payroll operations. Neither the manager responsible for it each week nor the employees receiving it. The system for collecting the tip had been going on for years, and the spreadsheet that calculated the tip was made by some long-gone person. It was trusted like a car that started every day without fail, because nobody knew anything about how it worked, except that it always worked fine. This time, it didn’t.
In the early stages of the project, I was not creating any thing. Rather, I asked the manager to give me a tour of her work week and explain to me how she started, what she found most troubling, and what she always checked twice. I asked the employees if they knew what their tip percentage was. None of them did. This lack of clarity was not an annoyance, but something that carried weight.
Before any design took place, I did a complete map of the process: from the POS to the printouts to the spreadsheet and then to the accountants. Five or six different steps, with only one person being accountable for all of them. She required a solution that was developed uniquely for her; not for the individual who could troubleshoot a formula. That meant any variables such as the minimum wage, staff positions, and bonuses had to be visible.
The system runs the full biweekly payroll cycle in one tab. Every employee's name pulls their role, and every role determines a pay rate and a tip share based on weighted hours worked, split across FOH, BOH, and Bar. An employee lookup returns every number tied to a name instantly. Daily sales cross-check against tip pool totals so an error surfaces the day it happens instead of two years later.
The entire payroll process is carried out within one tab in the system. Each name in the system fetches the title of the person in the company and then the pay rate and tip distribution of each title according to the number of hours worked in each department is determined. Looking up each employee gets you all the numbers in the system for that individual at once. The daily sales figure is matched against the tip pool total.
It has been constructed in Excel through LET & LAMBDA commands utilizing dynamic arrays along with chaining of XLOOKUP function for performing role based lookups. The reporting dashboard monitors labor cost to sales ratio, sales to labor hours, as well as FTE count on a period basis. The printing macro is used for exporting the report in PDF format for the accountants. The workbook gets duplicated every two weeks.
Step 1 — looks up the employee's role from the master list
=ifna(arrayformula(XLOOKUP(CC35:CC151,BP58:BP151,BV58:BV151)))
Step 2 — looks up hours and respective pay/tip-out ratio against master dynamic table
=arrayformula(if(ifna(arrayformula(XLOOKUP(CC35:CC,DP35:DP,DT35:DT97+DU35:DU)))&" | "&ifna(arrayformula(XLOOKUP(CI35:CI,BP35:BP54,BT35:BT54)*XLOOKUP(CC35:CC,DP35:DP,DT35:DT+DU35:DU)))=" | ","",ifna(arrayformula(XLOOKUP(CC35:CC,DP35:DP,DT35:DT97+DU35:DU)))&" | "&ifna(arrayformula(XLOOKUP(CI35:CI,BP35:BP54,BT35:BT54)*XLOOKUP(CC35:CC,DP35:DP,DT35:DT+DU35:DU)))))
Step 3 — separates regular pay from overtime, computes regular pay at minimum wage
=ifna(arrayformula(arrayformula(XLOOKUP(CC35:CC151,DP35:DP151,DT35:DT151))&" | $"&round(arrayformula(XLOOKUP(CC35:CC151,BP58:BP151,BZ58:BZ151)*XLOOKUP(CC35:CC151,DP35:DP151,DT35:DT151)),2)))
Step 4 — calculates the tip share owed, using role points, point values, and hours worked
=iferror(ARRAYFORMULA(IF(CC35:CC="", "", BU7/BZ6 * IFERROR(XLOOKUP(CI35:CI, BP35:BP54, BT35:BT54) * XLOOKUP(CC35:CC,DP35:DP, DT35:DT + DU35:DU), 0) + IFERROR(XLOOKUP(CC35:CC, DF14:DF28, DL14:DL28), 0))),0)
The $20,000 shortfall was identified, recorded, and fixed. The manager who once handled the payroll process alone has a system that can be explained to another person, a system that she can trust at 11pm on a Sunday evening when the payroll is due the next morning. It saves her over 60 hours a month. However, the real work took place prior to opening Excel not because the formulas were complicated – they were – but because no formula will save a system based on an incorrect understanding of human needs.
I also learned about invisibility. The initial spreadsheet was not obviously broken. It began each morning. The problem it was hiding had existed for years precisely because nothing about it appeared wrong. The most dangerous systems do not break in loud ways. The most dangerous systems break silently, consistently, and in ways that are plausible enough that no one investigates.
I investigate now.