Today at a glance
Specials running and events on the books — the day's roadmap.
Low-stock alerts
Items at or below their reorder point, or projected to run short within a week based on recent usage.
This week's forecast
Expected usage this week, from the average of the last 4 weeks.
Today in plain words
Service Station checks — one row per order
Every check The Service Station has pushed for the chosen day — tap a row for its line items. “imported ✓” means it has been booked into Sales and depleted inventory. The Prep Table can only show checks that reached it: one still sitting in an iPad’s offline queue has to be sent from that iPad (tap Sync on the POS).
Log sales
Revenue & profit — last 28 days
This week's P&L
Sales log revenue, minus COGS from what you sold, minus the Labor-tab payroll estimate, minus other logged expenses.
Item profitability
| Item | Price | Cost | Margin | Wk | Mo | Life | Revenue | Profit | Trend |
|---|
Units count item-level sales only. Click a row for the full story.
Top 5 by total profit
Top 5 by volume
Lowest margins — pricing review
Category analytics
Uses the same date filter as above. Sparklines show weekly revenue over the last 4 weeks.
| Category | Revenue | COGS | Profit | Avg margin | Items sold | 4-week trend |
|---|
Recent entries
| Date | Category | Item | Qty | Amount | Notes |
|---|
86 list & deliveries
86 history
| Item | 86'd | By | Cleared | By | Down for |
|---|
| Ingredient | Category | Supplier | Stock | Reorder at | Cost / unit | Value | Wkly avg | Status |
|---|
Weekly inventory count
Count one section at a time — meats today, pantry tomorrow — and the sections add up to a single weekly count. Count in whatever you are holding (bags, cases, each, or the stock unit) and tap ¼ ½ ¾ for the part-full one. Each section records what the system expected at the moment you counted it, so a count spread across several days still reads true.
Past counts
| Date | By | Lines off | Variance value | Sections counted |
|---|
Log usage
Record prep and batch work here — stock updates automatically. Recipe-linked sales already deduct from the Sales tab, so don't re-log those, or you'll count the same ounce twice.
Recent entries
| Date | Ingredient | Qty | Reason |
|---|
Log waste
Quick entry during service. Stock deducts automatically; cost is captured at today's price. (Prep usage stays on the Usage log.)
Where it's going wrong
Top wasted ingredients — 30 days
By reason — 30 days
8-week trend
By supplier — 30 days
Recent entries
| Date | Ingredient | Qty | Reason | Cost | Notes |
|---|
Quick answer
"Is the risotto gluten-free?" — pick the item and the allergen.
Allergen matrix
✕ contains · — free · ? not assessed yet (tag it on the recipe). Allergens come from the linked recipe; items without one carry their own tags.
| Recipe | Category | Ingredients | Prep | Yield | Batch cost | Cost / serving |
|---|
On the bar now
Brew a pot
Tap a roast the moment the pot goes on. Beans come off inventory at the dose below.
Pot tags
The card that sits by the pot. Two to a sheet — print on Letter landscape with margins set to none, then cut down the dashed middle. Leave a line blank and it simply doesn’t print.
Roast performance
Pot log
Active right now
Versions
| Version | Schedule | Group | Items | Priority | On |
|---|
When each menu runs
Green = time-based, brass = seasonal, gray = switched off. Drag a dated bar to shift its whole run.
Preview at a moment
"What does the menu look like at noon vs. 7pm?"
Groups
Toggle whole groups on or off — e.g. flip "Seasonal" off after the season ends.
Change history
Menu boards
Screen menus drawn from your real menu items and exported as a PNG for the TV. Nothing here stores a price — change a drink in Menu items and re-export.
Sections
A section is a heading, its size columns, and the drinks underneath. Sections fill the board's columns in the order listed.
Preview
Quick start
One tap creates today's checklist from your most-used templates.
Open checklists
Today's and upcoming sheets. Fill out on screen, or print and post at the station.
| Date | Checklist | Type | Progress |
|---|
History
Completed sheets — what got done, what was flagged, and staff notes.
| Date | Checklist | Staff | Done | Flagged |
|---|
Click a day to add · click an entry to edit · drag entries between days · hover for a preview.
Print center
Role-targeted sheets built from the menu and calendar. Pick a day, jot the day's notes, preview, print.
Print archive
A record of every sheet printed — what the team was actually handed.
| For day | Sheet | Printed |
|---|
Drag a person onto a shift to assign them, or click a shift for the full picture. Click a name here to edit their availability, skills & max hours.
Employee week view
The simple version to text someone: "you work Saturday 5–10."
Time off
Requests from the staff portal land here. Approved days block scheduling automatically.
Who's on the clock
Punch in when you arrive, out when you leave.
Scheduled vs. actual
One row per person for the pay period. Scheduled is what the roster says; punched is what the clock recorded.
| Employee | Scheduled | Punched | Variance | Overtime | Est. pay | Notes |
|---|
Day by day
Every day in the period with a shift or a punch against it.
| Date | Employee | Scheduled | Punched | Variance | Flags |
|---|
Fix a punch
Someone forgot to clock in, or walked out without clocking out. Correct it here — every change is stamped with who made it and why.
Leave Out blank to put someone back on the clock. A closing shift that ends after midnight is fine — an out time earlier than the in time is read as the next morning.
All pay periods
Every period with a shift or a punch on record — tap one to load it above.
| Pay period | Staff | Scheduled | Punched | Variance | Payroll log |
|---|
Team
Everyone on the roster — role, pay, and the PIN they use to sign in.
| Name | Role | Pay | Rate | Weekly est. | PIN | Access |
|---|
How PINs work
Give each person a unique 4–6 digit PIN. It's one code, two doors: they punch it into The Service Station POS to ring sales, and they can tap "Staff PIN" on this app's sign-in screen to open their staff portal — no email needed. Managers still sign in here with email + PIN (that's what unlocks the full app); their PIN is for the POS.
Team messages
Channels reach the right people: staff see Everyone plus their side of the house; Managers is just you and your leads.
Message the team
Shows as a banner in the staff portal for 36 hours (or until each person dismisses it).
Log hours
For hourly staff. The start date decides which pay week the hours land in.
| Dates | Employee | Hours | Notes |
|---|
Payroll estimate
Hourly hours × rate, plus 1/52 of each salary.
| Employee | Role | Basis | Hours | Estimated pay |
|---|
Tips by staff
Every check from The Service Station, added up per person for the pay period. Card tips come from the reader; cash tips are whatever was entered on the check. Voided checks don't count, and the period follows your "Week starts on" setting.
| Staff | Checks | Card tips | Cash tips | Total tips |
|---|
Every pay period with checks on record — tap one to load it above.
| Pay period | Checks | Total tips |
|---|
Quick entry
Type the description and the category fills itself when a rule matches.
Monthly summary
| Month | Income | COGS | Labor | Other expenses | Net |
|---|
Transactions
| Date | Description | Category | Account | Amount |
|---|
Categories & rules
Categories are the buckets your P&L is built from. Mark one as COGS and it lands in the cost-of-goods line instead of other expenses.
"If the description contains X, file it under Y." Applied as you type and on import.
Accounts
Utilities, bank accounts, and cards — reference details in one place.
Forecast & runway
| Supplier | Contact | Categories | Delivers | Terms | Prices |
|---|
Price changes — last 30 days
Pulled from ingredient price history. Anything moving is listed here.
Social graphics
Instagram-ready templates in your house style — fill in the words, download the PNG, post it.
Prep schedule
Forecasts each menu item from its own sales history (same weekday, last 4 weeks), explodes it through the recipes, and tells you how much of each ingredient to pull or prep to cover the day.
| Ingredient | Need | On hand | To prep | Status |
|---|
Add to order
Add an ingredient to a supplier's order and pick which upcoming delivery you need it for. Chefs can add from the staff portal too — their additions show on the dashboard for your review. Marking an item Received adds its quantity straight into inventory.
Log a temperature
Take the reading, write the number. This is the record an inspector asks for — a ticked box isn't one.
Readings
Units & safe ranges
Defaults follow the FDA Food Code — cold at or below 41°F, frozen at or below 0°F, hot held at or above 135°F. Adjust to your equipment.
| Unit | Type | Min °F | Max °F |
|---|
Modifier groups
Reusable choices you attach to menu items — dressing, milk, add-ons. Each option can carry an up-charge and can add, remove, or swap ingredients, so inventory and COGS stay accurate (oat milk really does cost more). Edit them here; they sync to The Service Station.
| Group | Choice | Options | Attached to |
|---|
Board report
A designed one-page summary built from the same numbers as the tables below — preview it, then use Print / Save as PDF.
Today at a glance
Targets: food cost 28–32%, labor 28–30%, waste under 5%, prime cost (food + labor) under 65%.
Sales & trends
Pick specific dates when a festival, game, or event rolls through town — then compare it against a normal stretch.
| Date | Day | Sales | Items | COGS | Margin | FC % |
|---|
This week vs last week
Week to date (Monday through today) against the same span last week — a like-for-like read, not a partial week against a full one. Green means the change is in your favour.
| Metric | This week | Last week | Change |
|---|
Menu engineering
Every item plotted by how often it sells against how much it makes per sale, within its category. Stars earn and sell; plowhorses sell but earn little; puzzles earn but sell slow; dogs do neither.
| Item | Class | Sold | Margin ea | Total margin | Price | Cost | Suggested move |
|---|
Sales by hour
| Hour | Sales | Items | Avg ticket line |
|---|
What sold on a day
Every item that rang through on one day, against what that item normally does on that weekday. A surprise hit or a surprise miss shows up as a flag rather than something you have to spot.
| Item | Category | Sold | Typical | vs typical | Revenue | Margin |
|---|
Busiest days of the week
Average per weekday over the last 8 weeks, compared to the 8 weeks before that.
| Day | Avg sales | Avg items | vs prior 8 wks |
|---|
Menu profitability
Uses the Sales & trends date range (set under Reports → Sales). Margin = revenue − recipe cost. Mix = share of items sold.
| Item | Sold | Mix % | Revenue | COGS | Margin | Margin % |
|---|
Food cost & labor · last 14 days
| Date | Sales | COGS | FC % | Labor $ | Labor % | Prime % |
|---|
Labor $ comes from actual clock punches (hourly × rate, plus 1/7 of weekly salary per salaried person per day worked).
Cash reconciliation
Pulls every iPad's till close for the day. Per-drawer tolerance is $5; a day flags if the drawers are off by more than $10 combined. Tap a day to see each drawer.
Over / short is the drawer itself: what was counted against the float plus cash sales. Deposit gap is a separate question — whether the cash that left the drawer reached the bank. It compares your deposit against counted cash less whatever you left behind as the next float, so changing the size of the bank never shows up as a gap. Left in drawer fills itself in once that next drawer is opened.
Cash tips belong to the server and are rebuilt from the POS order feed; Over / short excl. tips is what the drawer would have read if tips had never been expected in it. A dash means the window could not be proven against the order feed — hover it for the reason.
| Date | Drawers | Cash sales | Counted | Float | Over / short | Cash tips | Over / short excl. tips | Left in drawer | Deposit | Deposit gap |
|---|
Production batches
What the kitchen made and what it drew. Cooks log these from the staff portal; each one posts at the recipe’s yield. Removing a batch puts its ingredients back.
| Date | Recipe | Made | Yield | Ingredient cost | By |
|---|
Variance investigation
Where did it go? Each counted shortfall or surplus in the window with its dollar impact, set against what the recipes say you should have used. Tag a reason so patterns surface over time. Tap a row for the full history.
| Ingredient | Last count | Book | Counted | Variance | $ impact | Recipe usage | Reason |
|---|
Staff performance
Uses the Sales & trends date range (set under Reports → Sales). Late in = clocked in 5+ min after shift start; late out = clocked out 15+ min after shift end (overtime creep). Time off counts approved days.
| Name | Hours worked | Shifts | Late ins | Late outs | Time off (days) |
|---|
Exports
All three respect the Sales & trends date range (set under Reports → Sales). They open straight into Excel or Google Sheets for your accountant.
Sales tax collected
Actual tax from POS sales, plus an estimate for hand-logged sales at your tax rate. Numbers to sanity-check against the POS, not a filing document.
Daily · last 14 days
| Date | Sales | Tax |
|---|
Weekly · last 8 weeks
| Week of | Sales | Tax |
|---|
Monthly · last 12 months
| Month | Sales | Tax |
|---|
Quarterly
| Quarter | Sales | Tax |
|---|
Cost of goods used
Usage priced at the cost in effect on each date (from price history). Pick a range:
| Ingredient | Qty used | Prep | Waste + spill | Total cost |
|---|
Ingredient price changes
What your suppliers have been doing to your costs.
| Ingredient | Supplier | Changes | Then → now | Δ | Δ% |
|---|
Every change, in order
| Date | Ingredient | Supplier | From → to | Δ% |
|---|
Labor summary
| Employee | Scheduled | Punched | Est. cost |
|---|
Menu margins — worst first
| Item | Cost | Price | Margin |
|---|
Menu design
Pick the look for your printed customer menu. Thumbnails use sample dishes; the preview below uses your real menu.
Brand
Applies to every printed menu. The sheet's own padding only exists at the start and end of the menu, so a second page would start hard against the paper's edge \u2014 the "later pages" top margin is what gives page 2 onward their breathing room. "None" prints edge to edge, though most printers still keep a small unprintable strip. You can also change all of this right on the print preview.
What appears on the menu
Trim it down for a QR board, or show everything for the table menu.
Preview
Business hours
Set them once here. The door sign reads from this — change your hours in one place and reprint.
Hours sign design
Colors, fonts and tagline come from the brand settings above, so the sign on the door matches the menu on the table.
Hours sign preview
Paper size decides how many print per sheet — table cards come four up with cut lines.
Policy documents
Dress code, attendance, the personnel manual — drafts stay private; published documents appear in every staff member's app.
| Title | Category | Status | v | Updated |
|---|
Health inspections
| Date | Result | Inspector | Notes | Follow-up |
|---|
Company
Shows on the header and printed sheets.
Decides which day a sale belongs to. A dinner rung at 9pm must land on tonight's books, not tomorrow's.
Sets the week for payroll, reports and the schedule — match your pay period.
Time clock rules
These control how staff clock in from their own phones in the staff portal. A manager clocking someone in from the time-clock screen is always allowed, and clocking out is never blocked.
They can still clock in — it just lands on your Dashboard under "Clock-ins to approve" for a thumbs up or down. Nothing pops up on their screen asking for a code.
Stand at the restaurant and tap "Set location" once. Location only works on the hosted https site (your alfredbakery.com/demos link), not a downloaded file, and each phone has to allow location for the page.
Sync
Share this app across devices through your Supabase project. Everyone signs in with their own email + PIN; changes sync live and queue while offline.
Staff device link: one-tap setup for team phones — create one shared Supabase user (e.g. team@yourbistro.com), send staff the link, and their phone connects automatically; each person just enters their own PIN. Team edition: goes a step further — it downloads a copy of this app with your project settings and the shared account baked in. Host that file as your site and every device that opens it is configured from the first tap: no setup screen, straight to the PIN pad. Staff PINs open the staff portal; only a manager PIN opens this manager view. Either way, treat link and file like a house key — anyone holding them can read your synced data.
Backup
Export drops a dated file in your Downloads — keep a copy in Google Drive or Dropbox. An export is your undo button: sync copies mistakes to every device, a file doesn't. Import replaces current data.
This device only — turn it on just on your office computer. It runs when you open the app, at most once per period, and only after syncing so the file has real data. Never runs on staff phones. Your browser may ask permission to allow downloads the first time — say yes.
Help & FAQ
Quick answers to how the system actually behaves. Tap a question to open it, or search.
Where do I build the menu — here or on the iPad?
Always here. The Prep Table is the source of truth: menu items, modifier groups, sections, and menu versions all start here and sync out to The Service Station. Building in the POS direction creates duplicates and sync conflicts, so enter the menu here first, then let it flow to the iPads.
A sale rang on the iPad but isn't showing here
The POS pushes each check into a shared collection, and this app imports them as they arrive. If a terminal was offline or you just opened this screen, use Re-check for POS orders on the Dashboard (or the Sales tab). If a check still doesn't appear, make sure the iPad has signal and has synced — checks queue on the device while it's offline and push once it reconnects.
How do menu versions and the automatic flip work?
Each version has its own set of items, and the POS hard-swaps to the next version at the time you set — no staff action needed, and the old items disappear at the cutoff on purpose. Items not assigned to any version are permanent staples and always show. If a flip seems off, the version inspector in POS Admin shows what the timer is doing.
Why does page 2 of a printed menu start so close to the top?
A menu's designed padding only exists at the start and end of the whole menu, so when it spills onto a second page, that page would begin right at the paper's edge. The fix is the Print margins control (Branding tab, or right on the print preview): every preset gives later pages their own top margin, and the Custom option lets you set the first page's top, later pages' top, bottom, sides, and sheet padding independently.
Where do I see everyone's tips for a pay period?
Operations → Labor → Tips by staff. Pick any pay period with the arrows or date box, and every server's card tips, cash tips, and total appear — with an "All pay periods" table underneath for history and an Export CSV button for payroll. Card tips come from the reader; cash tips are what was entered on the check; voided checks never count.
On the till report, what's "Over / short" versus "Deposit gap"?
Over / short is the drawer itself: what was counted against the float plus cash sales. Deposit gap is a separate question — whether the cash that left the drawer actually reached the bank. Changing the size of the bank never shows up as a gap, and "Left in drawer" fills itself in once the next drawer is opened.
Why does the till show "Over / short excl. tips"?
Cash tips belong to the server, not the house, so the report rebuilds them from the POS order feed and shows what the drawer would have read if tips had never been expected in it. A dash means the window couldn't be proven against the order feed — hover it for the reason.
How do staff sign in on their phones?
Give each person a PIN on their card in the Team tab. A staff PIN opens the staff portal; only a PIN on a card with manager access opens this manager view. For a new phone, send the staff device link (Settings → Sync) — one tap connects the device, then they just enter their PIN. Treat that link like a house key.
How do the time clock rules work?
Three optional guards, all in Settings → Time clock rules: flag clock-ins from people not on today's schedule (they land on your Dashboard for approval — nothing blocks them), flag punches more than a set number of minutes early, and a geofence that only allows self-punch near the restaurant. The geofence needs the hosted https site and each phone allowing location — it can't work from a downloaded file. Clocking out is never blocked.
What happens when I 86 an ingredient?
Everything built on it follows: menu items, sub-recipes, and any modifier options linked to that ingredient become unavailable on the POS automatically, so nobody can ring what the kitchen can't make. Un-86 it and everything comes back.
Do I still need backups if sync is on?
Yes — sync copies mistakes to every device just as faithfully as it copies good data. An export is your undo button. Use Export All Data in Settings → Backup, or turn on automatic backup on the office computer only (it's a per-device setting and never runs on staff phones). Keep a copy in Google Drive or Dropbox.
What does the go-live reset delete — and keep?
It clears practice data (sales, checks, punches, till closes, and similar dated records) and keeps your whole setup: ingredients, recipes, menu & wine details, modifiers, menu versions, sections, suppliers, team, schedule, checklists, branding, and settings. A full backup downloads automatically before anything is deleted, and the wipe syncs to every connected device.
What does "Clear the books up to a date" do?
It deletes dated records before a cutoff and leaves everything from that day forward alone — useful when a go-live happened mid-week and practice numbers sit behind real ones. Your setup is never touched. Sales tax lives in the sales entries themselves, so clearing entries before the cutoff is what clears the tax history behind them.
Why does the "Week starts on" setting matter so much?
Payroll, the labor reports, the schedule, and the tips-by-staff report all share that one setting as the pay-period boundary. Set it once in Settings → Company to match how you actually pay people, and every weekly number in the app lines up with your pay period.
The receipt printer stopped polling or won't connect
The Star mC-Print3 talks to the cloud by polling (CloudPRNT), so nothing needs to reach into your network — but older firmware can't negotiate modern TLS with the endpoint. If it goes quiet, first check the printer's network light, then update its firmware from Star's utility; that resolves the cipher issue. Power-cycling after a network change also helps it re-register.
How does the card reader handle tips and refunds?
The S700 collects the tip on the reader itself as part of the payment, so what the guest chooses is what's captured. Voiding a card check refunds the payment, tip included. The reader is driven from the server side (Supabase Edge Functions) — secret keys never touch the browser — so if the reader misbehaves, check the connection and the Edge Function logs rather than the iPad.
Which settings live only on one device?
A few things are deliberately per-device and never sync: automatic backup (office computer only), the hidden Notes column toggle on the POS, and similar display preferences. Everything else — menu, team, schedule, checks, settings — syncs to every connected device.
We lost internet during service — did we lose anything?
No. Both apps are offline-capable: changes queue on the device and push automatically once the connection returns. The only symptom is that other devices won't see those changes until then — so if a number looks missing right after an outage, give the device a minute online and then re-check for POS orders.
Clear the books up to a date
A go-live that happened mid-week leaves practice numbers sitting behind your real ones. This deletes dated records before a cutoff and leaves everything from that day forward alone. Your setup — ingredients, recipes, menu, team, schedule, settings — is never touched.
Sales tax lives in the sales. The tax report isn’t a stored list; it’s added up from your sales entries every time you open it. Clearing the sales entries before your cutoff is what clears the tax history behind them.
Go-live reset
When testing is finished: clear the practice data and keep your real setup — ingredients, recipes, menu & wine details, modifiers, menu versions, sections, suppliers, team, schedule, checklists, branding and settings all stay. A full backup downloads automatically before anything is deleted, and the wipe syncs to every connected device.