Dashboard

Total Summary

Profit by Day

Bookings

Votes

Schedule

Cost Management

🏛️ Monthly Fixed Costs — facility memberships / direct debits

Each entry is a recurring monthly amount (e.g. £30/month gym membership for an organizer). The total for the viewed month is divided evenly across that month's sessions and added to each day's expenses as Fixed Cost. Players do not pay it — the club absorbs it, so profit drops accordingly.

Viewing month (current month/year by default)
+ Add new member (label)
Monthly £

Record Costs

Date *
Court Cost (£)
Cost/Tube (£)
Per Tube
Used
Penalty (£)
Mode
Organizer (pre-paid court → gets credit)
Collected (£)
Notes

History

Players

Active Players

Payments

VIEW

Outstanding Dues — by Player

💳 Payments Made

All recorded payments, most recent first.

Reminders

📅 Scheduled WhatsApp (Twilio)
Automated messages are sent daily via Twilio. You can also trigger them manually below.
🕗 8 PM — Daily Game Post
🗳 Booking Vote Reminder
Sends to every active club member to cast their vote
🕚 11 PM — Payment Reminders
Sends to all players with outstanding dues
🛠️ IONOS Cron Setup
📜 Last Cron / Manual Sends
Most recent WHATSAPP_* entries from the audit log. If your IONOS cron is set up correctly, you'll see new WHATSAPP_DAILY and WHATSAPP_REMINDER rows every evening. No entries = cron isn't reaching the endpoint.
Loading…

Outstanding Dues (Manual WhatsApp)

💬 Feedback & Chat

Rate each session and chat with everyone who played. Pick a session date below.

Audit Log

Settings

💳 Stripe

Payment Link

🎮 Game

Default Players
Round Mins

🛠️ Data Tools

One-shot setup tasks. Each is idempotent — safe to run multiple times.

🎾 Racket Re-String Orders

Live queue of players' racket re-string orders. Update status as you progress them.

Loading…

🩺 Diagnose User — resolve "session expired" loops

Enter a user's email to see why they may be hitting auth issues (inactive account, missing player record, duplicate rows, expired tokens, etc).

📋 Subscription Plans

Set the membership fee and per-game surcharge for each plan. The surcharge is added on top of each player's base split cost per game (e.g. 10% → player pays base split + 10%).

📅 Monthly
Subscription Fee (£/month)
Game Surcharge (%)
📆 Yearly
Subscription Fee (£/year)
Game Surcharge (%)
🎯 Pay as You Go

No membership fee — players only pay per game.

Game Surcharge (%)
Non-Member Flat Rate (£)

Default "Non-Member Charge" on new bookings/costs — can still be overridden per booking.

🏢 Clubs

Create clubs so players can self-select during registration. Each club can have its own subscription pricing and prepay surcharge.

Loading…

⚙️ Per-Club Pricing

Override global subscription fees and prepay surcharge for a specific club. Leave at 0 to use global defaults.

Select Club

Daily Post

Date

Assessment

🎥 Training Library

Watch coaching tutorials and upload your own gameplay for review.

📚 Tutorials

🎯 My Gameplay

🔑 Saved Logins

These credentials are sent to the Python fetch service when you trigger a fetch using a specific account. Storage is base64-obfuscated, not strongly encrypted — only add credentials you have already shared with your fetch service.

🔁 Active Queues

📦 Shuttle Inventory

📥 Stock In

Log shuttle-tube purchases here — one entry per date. A booking on that date automatically shows and can edit these same cost figures in its own edit screen.

Add Entry
Date *
Number of Units *
Cost per Tube (£) *
Shuttles per Tube *
Bought By *
Allocations (optional — split these units between organizers)

📤 Stock Out

Shuttles consumed per session — pulled from each booking date's Costs record (Shuttles Used), showing which organizer that session was under.

My Bookings

🗓 Preferences

Set which days you're generally free every week, and pick your own start/end time for each one — helps admin schedule sessions you can attend.

My Dues