Enter the quantity of each denomination — not the dollar value. Totals calculate automatically.
| ¢1 | ¢5 | ¢10 | ¢25 | $1 | $5 | $10 | $20 | $50 | $100 | Total | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Start |
List how many rods are rented out and how many are available on the pier.
| Rented Out | Available | Total | |
|---|---|---|---|
| Start |
Enter the first band number on each roll as you begin the shift. For Shift 3, enter both the midnight changeover set (Set A — start of shift) and the morning set (Set B — after midnight swap).
Enter the last band number on each roll at end of shift — the closing band is still on the roll and is not counted as sold. Bands sold = Close # − Open #.
If any roll was swapped mid-shift, log the old closing # and new opening # here.
Log every band that left the roll without a clean paid sale.
Your shift data has been saved and is waiting for manager review. Do not alter any records. Lock the register before you leave.
REMEMBER: Lock the register when you walk away. Do not allow other people access to your cash drawer. You are responsible for till shortages.
If an employee didn't use the app, you can manually enter a shift here.
Configure Clover in Settings → Clover API to enable auto-pull.
Bands not resulting from a clean paid sale.
| Date | Assigned | Total Ret. | Pennies | Nickels | Dimes | Quarters | Ones/2s | Fives | Tens | Twenties | Fifties | Hundreds | Over/Short | Counted By | Shrt Owed | Shrt Paid | Balance | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Select an employee to view history | ||||||||||||||||||
| Cash Downstairs | |
| Cash Payouts | |
| Refund | |
| Less: Tips | |
| Total |
| Shift | Cashier | Cash Sales | Refunds | Payouts | Tips | S/B | Actual | Difference |
|---|---|---|---|---|---|---|---|---|
| 7a – 3p | $0.00 | $0.00 | ||||||
| 3p – 11p | $0.00 | $0.00 | ||||||
| 11p – 7a | $0.00 | $0.00 | ||||||
| Total | $0.00 | $0.00 | $0.00 | $0.00 | $0.00 | $0.00 | $0.00 | |
| Difference | $0.00 | |||||||
| Denomination | Qty | Amount |
|---|---|---|
| $100 | $0 | |
| $50 | $0 | |
| $20 | $0 | |
| $10 | $0 | |
| $5 | $0 | |
| $1 | $0 | |
| Coins | $0.00 | |
| Total | $0.00 | |
| S/B | $0.00 | |
| Difference | $0.00 |
| Date | Prepared By | Cash Down. | Payouts | Refund | Tips | Rpt Total | Total S/B | Actual | Shift Diff | Dep. Total | Dep. Diff | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| No deposits submitted yet | ||||||||||||
🌐 https://gfp-recon.netlify.app
This is your deployed app. Open this URL on any device — Clover terminal, manager phone, office computer. The PIN gate controls what each person sees. All shift data is stored locally on whichever device submits it.
gfp-recon.netlify.app — tap Go.9999 → tap the Settings tab.gfp_reconciliation.html file onto the drag-and-drop zone.gfp-recon.netlify.app1WDBH5DM562K4cc00a456-b01b-8405-e12d-f56774e5d5f71234 — change on first setup9999 — change on first setup| Shift | Hours |
|---|---|
| Shift 1 | 6:30 AM – 3:30 PM |
| Shift 2 | 2:30 PM – 11:30 PM |
| Shift 3 | 10:30 PM – 7:30 AM |
A daily shift reconciliation system for the Galveston Fishing Pier entry booth. Employees submit wristband counts and cash drawer totals at the end of each shift. Managers pull live sales data from Clover POS and reconcile band counts against actual admissions — flagging discrepancies, late refunds, and sequential band gaps automatically.
gfp_reconciliation.html (single file, ~125 KB)1WDBH5DM562K412349999The entire app is a single self-contained HTML file. No build step, no npm, no backend. Drop it anywhere — a web host, a local network server, or a USB drive — and it runs.
gfp_pending — submitted employee shifts awaiting manager reviewgfp_shifts — reconciled shift history loggfp_config — PINs, Clover credentials, thresholdsgfp_fails — PIN lockout trackingAll stored in localStorage on the device. Data persists across sessions but is device-specific. Export CSV from Shift Log to back up.
GET /v3/merchants/{mid}/orders — pulls paid orders in shift window, paginated at 200/pageGET /v3/merchants/{mid}/employees — populates employee name dropdownAll calls use Bearer token auth. Read-only scopes only. Works from any origin (no CORS issue with Clover's API).
| Role | PIN | Can See / Do | Cannot See |
|---|---|---|---|
| Employee | Set in Settings | Shift Start form, Shift End form, Exception log, Drawer count, Submit shift | Clover totals, reconciliation results, shift history, manager tabs |
| Manager | Set in Settings | All tabs: Pending Shifts, Reconcile, Shift Log, Settings, Clover Setup Guide, README | Nothing hidden |
Lockout: 5 failed PIN attempts triggers a 30-second cooldown. Tracked per-role in localStorage.
gfp_pending, the form resets, and the employee is shown a confirmation screen. Data cannot be edited after submission.| Flag | Severity | Meaning |
|---|---|---|
| Band count mismatch | 🚨 Critical | Physical bands issued ≠ Clover net sales. Investigate immediately. |
| Sequential gap | ⚠ Warning | (Close − Open) ≠ Clover + exceptions. A band was pulled from the middle of a roll without being logged. |
| Refund mismatch | ⚠ Warning | Clover refund count ≠ physical refund exception bands logged by employee. |
| Refund / void delay | ⚠ Warning | A refund or void was processed more than N minutes after the original sale. Threshold configurable in Settings (default 5 min). Common theft indicator. |
| Solo child sale | ⚠ Info | Child bands sold with no adult or senior in same shift. Unusual — may indicate a data entry error or an unsupervised minor. |
The app matches Clover order line items using case-insensitive partial string matching against the configured item names. Configurable in Settings → Clover API → Item Names.
| Tier | Default Match String | Counts Toward |
|---|---|---|
| Adult | NEW Adult Day Pass | Adult column + Total wristbands |
| Senior | NEW Senior Day Pass | Senior column + Total wristbands |
| Child (5–10) | NEW Kids 5-10 Day Pass | Child column + Total wristbands |
| Early Bird | EARLY BIRD | Early Bird column + Total wristbands |
| Season Pass | Current Season Pass Holder | Season Pass column + Total wristbands (free but gets a band) |
| Section | Field | Notes |
|---|---|---|
| PIN Management | Employee PIN | 4-digit, shared with all booth staff. Default: 1234. |
| Manager PIN | 4-digit, managers only. Default: 9999. | |
| Reconciliation Thresholds | Location Name | Printed on reports. e.g. "Entry Booth". |
| Refund Delay Threshold | Minutes after sale before a refund/void is flagged. Default: 5. | |
| Band Diff Warning | Non-zero diff threshold before showing a warning (default 0 = any diff flagged). | |
| Clover API | Merchant ID | 1WDBH5DM562K4 |
| API Token | GFP token (read-only). From Clover Dashboard → Setup → API Tokens. | |
| Item Names | Partial match strings for Adult / Senior / Child / Early Bird / Season Pass. | |
| Test Connection | Verifies Merchant ID + token. Should return "✓ Connected — GALVESTON FISHING PIER". |
The app is hosted on Netlify as a static file deploy. No CI/CD — updates are drag-and-drop.
gfp_reconciliation.html onto the drop zoneSettings (PINs, credentials) are in localStorage — NOT wiped by a Netlify deploy.
gfp-recon.netlify.appLoaded live from Clover. To add or remove employees, update them in Clover — the app picks up changes automatically on next load.
Copy this block into a new chat to give an AI assistant full context about this app.