Set the PayPal date range and click ▶ Run Report. Loads all Firebase orders and verified PayPal transactions, then identifies overbooking via FIFO analysis.
Map
Location-specific orders and offline bookings by site
Online ordersOffline bookingsOverbooked products
Loading map data…
System
Service health, alerts and monitoring
🔍 Order Investigation
Enter an order ID to pull its full Firebase document, all stockLog entries for its products, and check for duplicate orders.
⚠ Stock data may be stale — one or more products have not been updated in over 24 hours.
Check whether sync-stock-to-firebase.js needs re-running after a CSV import.
Compares booked_online in each Firestore stock doc against the actual count of confirmed online orders.
Use this to detect and fix cases where paid bookings haven't updated the stock counter.
Click "Run Check" to compare Firestore stock docs against confirmed order data.
Staff Activity
Loading…
Orphaned Payments
Loading…
Webhook Log
Loading…
Stock Movement Log
Loading…
Stock Reconciliation
Click "Run Check" to cross-reference Sanity stock counts against Firestore booking records.
Stock Integrity Check
Click "Run Check" to validate Firestore stock documents against Sanity product list.
Live Stock Changes
Listening for stock changes…
Firestore Inspector
Click "Inspect" to diagnose why online bookings may not be appearing. Shows raw Firestore data — no filtering applied.
Stock Import — CSV
Matches by Site Code → daybook_site_id
Upload a CSV containing SITE CODE,
REVISED PHASE 1 CAP and
OFFLINE SALES columns.
Updates total bookable slots and offline bookings in Firestore for each matched product.
Data Exports
⚠ Super Admin — Archive & Reset
Archive clears all in-app log data (bookings log, stock log, webhook log, activity feeds).
No data is deleted from Firebase or Sanity.
Use this to start fresh between sales periods or after testing.
PayPal Transactions
View and export PayPal payment history
PayPal API keys not configured.
To connect your PayPal account, add the following environment variables in your Railway project → Variables:
PAYPAL_CLIENT_ID — your PayPal REST app Client ID PAYPAL_CLIENT_SECRET — your PayPal REST app Secret PAYPAL_MODE — set to live or sandbox (default: live)
Get these from developer.paypal.com → My Apps & Credentials → REST API apps.
Transactions
—
Gross
—
Fees
—
PayPal charges
Net
—
Gross − Fees
Unique Customers
—
distinct payers
Refunds ↕
—
returned to customers
Unlinked Revenue ↕
—
no Firebase order
Refunds paid back to customers
PayPal payments with no matching Firebase order
Select a date range and click Apply to load transactions.
Bookings 2.0
Firebase orders matched to PayPal payments
Orders
—
Matched to PayPal
—
Unmatched
—
Order Revenue
—
PayPal Gross
—
Difference
—
Set a date range and click ↻ Load Orders to begin. Load PayPal data separately or use the PayPal tab first — matches will appear automatically.
Daybook Campaigns
Live view of all campaigns in Daybook — syncs changes to Firebase
No baseline saved yet — save one to start tracking changes when account managers update Daybook
Click ↻ Refresh to load Daybook campaigns
Overbooking
FIFO breakdown of orders per over-capacity site
Set a date range and click Run Report
🔐
Admin Access
Full data access — Firebase accounts, PayPal transactions, payment integrity and site health diagnostics.
Incorrect password.
⚙ Admin
Firebase · PayPal · Sanity — full data cross-reference
⚠ PayPal capture data not loaded — open Bookings 2.0 and let it auto-lookup captures first, then return here and Refresh All. Payment integrity checks will be incomplete without it.
▶⚠ Payment Issues
Click ↻ Refresh All to run analysis.
▶
💰 Revenue Reconciliation
Awaiting data load.
▶
👤 All Firebase Accounts
Awaiting data load.
▶
🔗 Orders Without a Firebase Account
Awaiting data load.
▶
🔗 Cross-System Integrity
Fetches PayPal transaction history and cross-references against Firebase. Finds money received with no booking, refunded orders still confirmed, and customers who paid more than once.
Set a date range and click ▶ Run.
▶
📋 All Orders
Awaiting data load.
⚠ Archive & Reset — Super Admin
This will clear all log data from this application view. Nothing is deleted from Firebase or Sanity. Enter the super admin password to continue.