Troubleshooting Guide

SB Cashout Calculator

Quick Orientation

There are three layers of data storage to prevent cashout data from being lost. This document helps identify issues and provides steps to fix.

1
Main Cashout Sheet The normal Google Sheet where cashouts land. Used on a normal day.
Daily Cashout - Master
2
Backup Sheet A separate Google Sheet with a raw copy of every submission. Quick access to all cashout data if missing from Master Sheet.
[BackupLog]AllCashouts

Column colors: Blue headers = staff-entered inputs (TotalSales, CashDue, FoodSales, HouseTip). Green headers = calculated outputs (REFERENCE #, NAME, DUEBACK, HOUSE, BUSSER, BAR, EXPO, EVENTS) and mirror the master sheet's columns A–H exactly. If the master sheet is ever missing a cashout, you can select the green block (H:O) across that cashout's rows here and paste into A:H of the master sheet's daily tab.
3
iPad Local Storage Cashouts stored directly on the iPad itself. Saves you when WiFi is down, Google is down, or Apps Script is broken. Retains the most recent 100 cashouts (~7 days at typical volume) UNLESS: the browser's local storage is manually deleted, or a private browser is used.
To View the Cashout Log, click the Cashout Log button on the iPad.

Note:

If the Error message ends with ✓ Cashout data saved to iPad, nothing is lost.
The Cashout Log will have the cashout data and error message.
Solutions for each error message can be found below.

Important: Never Use Private Browsing

If Safari is in Private Browsing mode, localStorage is wiped when the tab closes. This means all backup data stored on the iPad would be lost. The home screen shortcut avoids this by always opening in a normal Safari session.

Rule: Always use the home screen shortcut — never open the app URL directly in a private Safari tab.

Contacting Matt — two tiers of urgency

The error entries below use two levels of urgency. The distinction is whether DailyCashout-Master is receiving the cashout data or not.

Status References

Status Message on iPad What to do What happened
Synced (blank) Nothing.
Master Cashout Sheet updated.
Cashout submitted successfully
Sending Submitting… Nothing. Wait a few seconds. The cashout is on its way. Not an error.
Saved Recorded in the backup log — nothing is lost Nothing. You're done. The backup log has it; the master sheet didn't confirm
Not sent No WiFi — saved on this iPad Submit again once WiFi is back No network, so nothing reached Google
Unconfirmed Sent, but nothing came back to confirm it Check the master sheet before resubmitting Network is fine and neither sheet confirmed. Rare.
Pending Network error Check WiFi, resubmit when connected WiFi down or no internet
Error Apps Script error (HTTP 500) Email/text Matt ASAP Apps Script deployment broken or quota exceeded
Error Apps Script error (HTTP 404) Email/text Matt ASAP Apps Script URL is wrong or expired
Error Template tab not found on cashout master sheet Restore template from backup sheet (see steps below) Template tab was deleted from cashout master sheet
Conflict REF# X already exists on today's sheet Staff changes REF# to 00 and resubmits (saves to overflow) Staff used a REF# that's already on today's sheet
Error X section is full, no empty rows Staff changes REF# to 00 and resubmits (saves to overflow) Section has no empty rows left
Error REF# X not found in [section], use fresh Submit instead Load into form, submit as fresh Resubmit tried but no matching rows and no empty slots
Error Unknown section "X", contact Matt Screenshot it, email/text Matt ASAP Apps Script doesn't recognize the section name
Partial Main sheet sync failed, backup sheet OK Check backup sheet, resubmit to retry main sheet Main sheet failed but backup sheet succeeded
Synced Backup sync failed (not urgent) Main sheet has the data, email Matt when convenient Backup sheet failed but main sheet succeeded
Pending Both syncs failed Resubmit when network/Google is stable Both syncs failed

Error Messages & Solutions

Error: "Template tab not found on cashout master sheet"

Someone accidentally deleted or renamed the ⚠️ TEMPLATE — DO NOT DELETE tab in the cashout master sheet (DailyCashout-Master). The app can't create today's tab without it.

What's safe:

The cashout is stored on the iPad. Nothing is lost.

How to fix

  1. Open the Template Backup Google Sheet
  2. Right-click the Template tab → Copy toExisting spreadsheet
  3. Choose the master cashout sheet (DailyCashout-Master)
  4. Open the master cashout sheet, find the newly copied tab (usually called Copy of Template)
  5. Rename it to exactly ⚠️ TEMPLATE — DO NOT DELETE (including the warning symbol)
  6. Right-click it → Protect sheet → "Only I can edit" → Save
  7. Go to the iPad, open the Cashout Log, find the cashout, tap Edit to Resubmit
  8. Verify the row appears in today's tab of the master sheet

"Recorded in the backup log — nothing is lost"

The cashout is saved. It reached the backup log, which stores every figure you entered plus the full breakdown for each person. What didn't confirm is the master sheet.

If you're the one who submitted it:

You're finished. Nothing to check, nobody to find. The app shows this as saved on purpose.

For a manager

The day's totals on the master sheet will be short by this cashout until it's copied across. Everything needed is in the backup log: select columns H to O for that cashout's rows and paste into columns A to H of the day's tab on the master sheet, in the right section.

If this happens repeatedly:

One in a shift is normal. Several in a row means the master sheet connection is having a bad day — the cashouts are all safe in the backup log, but let Matt know.

"No WiFi — the cashout is saved on this iPad"

The app checked, and the iPad has no working connection. Nothing was sent, so nothing is in either sheet yet.

What's safe:

The cashout is stored on the iPad with every figure you entered. It stays there until it is sent, including through the app being closed.

How to fix

  1. Check the restaurant's WiFi (try loading any website on the iPad)
  2. Once it's back, open the Cashout Log
  3. Find the cashout and tap Edit to Resubmit

Don't re-enter it from scratch:

use Edit to Resubmit. Entering it again under a different REF# would count the cashout twice.

"Sent, but nothing came back to confirm it"

The cashout was sent and almost certainly reached the sheet. What went missing was the reply.

Submitting is two steps: the iPad sends the cashout, Google writes it, and then Google sends back a receipt over a separate one-time link. The writing is finished before that receipt is sent, so if the receipt gets lost the cashout is still in the sheet. This message means the app did not see the receipt — not that the cashout failed.

Do not just resubmit:

Look first. Resubmitting a cashout that already landed is usually harmless (it overwrites the same REF#), but if you re-enter it under a different REF# the day gets counted twice.

How to fix

  1. Open the master sheet and go to today's tab
  2. Look for the REF# in the section you submitted
  3. If it's there: nothing to do. The cashout is recorded.
  4. If it's not there: open the Cashout Log on the iPad, find the entry, and tap Edit to Resubmit

Why this happens:

The iPad going to sleep, the app being switched away from, or a brief WiFi drop in the seconds after pressing Submit. It says nothing about whether the cashout was saved.

Error: "Network/WiFi down" or "Submission failed"

The iPad couldn't reach Google. Either the restaurant's WiFi is down, Google is down, or the network is unreliable.

What's safe:

The cashout is stored on the iPad. Nothing is lost.

How to fix

  1. Check that the restaurant's WiFi is actually working (try loading any website on the iPad)
  2. Once WiFi is back, open the iPad Cashout Log
  3. Find the pending cashout(s) and tap Edit to Resubmit on each
  4. Verify they appear in the master sheet

If WiFi stays broken for a while:

Don't worry — the cashouts stay on the iPad indefinitely. When the iPad finally gets back online, tap each pending entry and use Edit to Resubmit on each entry.

Error: "Main sheet sync failed" (backup sheet still worked)

The main Apps Script failed for some reason (quota, permissions, script error), but the backup Apps Script succeeded.

What's safe:

The cashout is stored on the iPad AND in the Backup Sheet.

How to fix

  1. Open the Backup Sheet ([BackupLog]AllCashouts) on your desktop to confirm the row is there
  2. Open the iPad Cashout Log
  3. Find the cashout and tap Edit to Resubmit — this will retry the main Apps Script
  4. If Edit to Resubmit still fails, the master sheet is NOT syncing for this cashout — email or text Matt ASAP with the Cashout ID, date/time, and a screenshot of any error in the Apps Script logs if possible. DailyCashout data may require manual entry until fixed.

Error: "Backup sheet sync failed" (main sheet worked)

The main Apps Script worked fine. The backup Apps Script failed. This is a lower-priority issue because the main sheet has the data.

What's safe:

The cashout is on the iPad AND in the main sheet.

How to fix

  1. Verify the row is in the master sheet
  2. No urgent action needed
  3. At end of shift, email Matt — we'll investigate the backup Apps Script next time we work together

Error: "Both sheet syncs failed"

Both Apps Scripts failed. This is rare — usually means Google Apps Script is having a platform-wide issue.

What's safe:

The cashout is on the iPad. This is exactly what Layer 3 is for.

How to fix

  1. Check if Google is having a platform issue: Google Workspace Status Dashboard
  2. If Google is down, wait it out — do NOT manually type cashouts until Google is back
  3. Once Google is back, open the iPad Cashout Log
  4. Tap Edit to Resubmit on each pending cashout
  5. Verify they all appear in the master sheet

Error: "REF# X already exists on today's sheet"

Staff tried to submit a cashout using a REF# that's already on today's sheet. A REF# is considered unique across the entire day's tab (AM and PM, Server and Bar and Sushi sections all checked together), since Sandbar REF#s are generated once per day when a server first rings an item in. So this error fires whether the existing REF# came from another iPad, the same iPad earlier in the day, or a resubmit from a prior shift.

What's safe:

The new cashout is stored on the iPad. Nothing was written to the sheet.

What the staff sees

A red banner appears just below the Due/Owed result with the heading "REF# Already Used" and the italic instruction "select option then submit again". The Submit Cashout button dims to signal that picking a banner option is the next action. The banner presents two choices:

Option 1: "Entered Wrong REF#"

If the staff made a typo, they tap this button. The banner dismisses, the screen scrolls to the REF# input, and the field is focused so they can type a fresh number and resubmit.

Option 2: "REF# Correct"

If the REF# is genuinely correct but already in use, the staff taps this button. The app changes the REF# to 00, recalculates, and the screen returns to the REF# input showing the new 00 value. Staff then presses Submit Cashout to save the row to the overflow area at the bottom of the sheet. The staff should tell the manager: "REF# used, cashout saved to overflow."

Manager follow-up (after service)

  1. Open today's tab and scroll to the overflow area (row 97+)
  2. Find the overflow entry. Column I shows the Cashout Type.
  3. Compare with the original REF# entry in the correct section
  4. Move the overflow row to the correct section, or assign a new REF# as needed

Error: "[Section name] section is full, no empty rows"

The named section in today's tab has no empty rows left. For example, PM Server Main has 16 slots (rows 21-36).

What's safe:

The new cashout is stored on the iPad. Nothing was written to the sheet.

What the staff should do (on the iPad)

The app shows numbered steps. Staff follows them:

  1. Change REF# to 00
  2. Press Calculate Cashout
  3. Press Submit Cashout
  4. Tell the manager: "Cashout section full, saved to overflow"

The cashout will be saved to the overflow area at the bottom of the sheet.

Manager follow-up (after service)

  1. Open today's tab and scroll to the overflow area (row 97+)
  2. Check why the section filled up (accidental duplicates, test data, or genuinely busy night)
  3. Move overflow rows into the correct section if space has been freed up, or leave them in overflow
  4. If this keeps happening, email Matt to discuss expanding the section layout

Error: "REF# X not found in [Section name], use fresh Submit instead"

Someone tapped Edit to Resubmit and submitted, but the Apps Script couldn't find any existing rows with that REF# in the named section to overwrite. The app only sends overwrite mode when the entry's previous submit was recorded as successful, so this error usually means the rows were manually deleted or edited in the sheet after the original submit.

What's safe:

The cashout is stored on the iPad. Nothing was written to the sheet.

Case A: REF# is genuinely missing from the sheet

The original submit never landed. On the iPad Cashout Log, tap the entry to view its data, then hit the Edit to Resubmit button to manually edit and resubmit.

Case B: REF# is in the sheet but the resubmit still failed

The REF# in the sheet was probably manually edited after the original submit (e.g. someone added (Manual fix)). Undo the manual edit in the sheet if possible, then tap the entry on the Cashout Log and try Edit to Resubmit again.

Error: "Unknown section '[section name]', contact Matt"

The app tried to submit a cashout with a section name (Cashout Type) that the Apps Script doesn't recognize. Because the Cashout Type is a fixed dropdown in the app, this shouldn't normally happen — it only fires if the iPad and Apps Script are out of sync (a new type added to one but not the other, or an iPad running a stale cached version).

What's safe:

The cashout is stored on the iPad. Nothing was written to the sheet.

How to fix

  1. Open the Cashout Log on the iPad and tap the affected entry so the full cashout data is visible
  2. Take a photo of the screen (cashout data and error message should both be visible)
  3. Email or text Matt ASAP with the photo — this is the only way Matt gets notified. DailyCashout data may require manual entry until fixed.

Known Limitations

Changing the section on a resubmit leaves the original rows behind

Resubmitting a cashout normally replaces the original rows. It cannot do that if you also change the section — submitting as Bar Main and then resubmitting as Bar Upstairs, for example. The app looks for the original rows in the new section, does not find them, and writes a fresh set instead. The original rows stay where they were, so the day counts that cashout twice.

What to watch for:

After resubmitting a cashout under a different shift, location or type, check the section you originally submitted to. If the old rows are still there, the day's totals are too high. For a bar cashout, check the bartender section at the bottom of the tab as well.

How to fix: Delete the rows in the original section by hand, including the bartender name and hours at the bottom if it was a bar cashout. Leave the newly written rows alone.

How to avoid it: if you picked the wrong section, resubmit under the original section first to clear it, then submit the correct one as a new cashout.

Resubmits that keep the same section are handled correctly, including the bartender entries — that part was fixed on 7 August 2026.

Wrong date was submitted — manager fix required

If a staff member originally submitted a cashout with the wrong date (for example, typed yesterday's date into today's cashout), the record lands on the wrong daily tab in the master sheet. The app cannot correct this automatically — the date field is locked during Edit to Resubmit on purpose, because changing it from the iPad would create orphan records on yet another tab.

What to watch for:

Staff reports that their cashout doesn't appear on today's tab, or shows up on a different day's tab. Do NOT have them use Edit to Resubmit to try to correct it — the date field is locked, and resubmitting would only overwrite the row on the wrong date.

How to fix (manager, manual):

  1. Open the master cashout sheet in Google Drive
  2. Find the tab for the WRONG date and locate the cashout row(s) by REF#
  3. Copy the row data into the correct date's tab (the same rows / section the cashout belongs to)
  4. Delete the original row(s) from the wrong date's tab
  5. On the iPad, open the Cashout Log, select the entry, and tap Mark as Synced — not Edit to Resubmit. This clears the pending status without sending the row anywhere.

Why this isn't automated: the app treats the date the staff member entered as the source of truth. Detecting a "wrong date" requires human judgment about what the correct date should have been — something only a manager can decide.

Overflow Area (REF# = 00)

When a cashout can't go into its normal section (REF# conflict or section full), the app redirects it to the overflow area at the bottom of the daily sheet (row 97+).

How it works:

  • Staff changes the REF# to 00 (any combination of zeros works: 0, 00, 000)
  • The cashout is appended to the next empty row starting at row 97
  • Column I shows the Cashout Type (e.g. PM Server Upstairs) so you know where it belongs
  • All other columns (A-H) match the normal layout: REF#, Name, Dueback, House, Busser, Bar, Expo, Events

What to watch for:

After service, check row 97+ on today's tab. If there are any rows there, they need to be reviewed and moved to the correct section. Staff will have told you either:
  • "REF# used, cashout saved to overflow" = duplicate REF# conflict
  • "Cashout section full, saved to overflow" = section ran out of rows

How to reconcile (after service):

  1. Open today's tab and scroll to the overflow area (row 97+)
  2. For each overflow row, check column I to see which section it belongs to
  3. If the correct section has space, cut and paste the row into the right spot and assign the correct REF#
  4. If the section is still full, leave the row in overflow (the data is safe and complete)
  5. Delete the overflow row after it's been moved (or leave it if keeping in place)

How to: Save Monthly Cashouts

The master cashout sheet accumulates one tab per day forever. Every so often (end of month, end of quarter, whenever it feels cluttered), archive the old tabs:

  1. Open the master cashout sheet in Google Drive
  2. Right-click the file → Make a copy
  3. Rename the copy for the Month (or desired period) it applies to
  4. Move the copy to an archive folder if desired
  5. Reopen the original DailyCashout-Master Sheet
  6. Delete the old dated tabs you just archived (leave the template tab and any current-period tabs alone)

Important


The iPad Cashout Log

The Cashout Log on the iPad is the safety net. Every cashout ever submitted from this iPad is stored there, even ones that successfully made it to the sheet. Each row in the table shows:

Cashout ID — in the format 2026-04-11[REF42]

Status — one of:

Message, Names, Section, Shared (people count), and Amount — at-a-glance summary columns

Tap a row to select it. The full stored data expands below the table (all form inputs, tip-out breakdown, and per-person split). Two action buttons appear with the expanded view:

Below those buttons is a small Troubleshooting panel with a View Troubleshooting Guide link that opens this page. Error messages in the table itself are also clickable — tapping an error row's message jumps directly to its specific section in this guide.


When Nothing in This Doc Helps

  1. Don't delete anything on the iPad or in the master sheet
  2. Screenshot any error messages
  3. Note the Cashout ID(s) of affected cashouts
  4. Email or text Matt ASAP with all of the above. If the master sheet isn't syncing, DailyCashout data may require manual entry until fixed.

Matt's contact: matt@veraisonlabs.com

Back to Cashout App