Software built for BTC - not rented from a chain.
Booking, billing, guest fees, payments, family contacts, privacy-aware roster details, and board reporting in one private system. Modern where it counts, invisible everywhere else.
One clean invoice a month.
Dues and guest fees roll into a single statement - no spreadsheets, no chasing checks, no shoebox of receipts.
Members pay the way they already pay.
Every invoice can point to a secure Stripe-hosted payment flow. BTC does not store card numbers, and the system keeps the invoice record with the member account.
- To
- Kalani Meade
- From
- Beretania Tennis Club
- Invoice
- #PNOZ6PYO-0001
Every guest, counted automatically.
Add guests during booking and the fee lands on the next invoice. Family contacts are still shown on the bill, but stay at $0.
The real court grid, on a phone.
Members use a fast day view that matches the club's original reservation rhythm while enforcing modern guardrails.
Friday, May 29 - tap an open time
Real usage, mapped to the hour.
Straight from the club's own booking history — every reservation on file, aggregated. No names and no individuals: just when the courts actually get used, so members can find open time and the board can plan around real demand.
Court usage
Court Utilization Heat Map
Occupancy across all 3 courts · 2024-01-01 to 2026-09-27 · darker = busier. Built from 9706 historical reservations.
| Mon | Tue | Wed | Thu | Fri | Sat | Sun | |
|---|---|---|---|---|---|---|---|
| 6:00 AM | 0.5 | 1.6 | 1.9 | 0.9 | 1.2 | 1.4 | 0.9 |
| 6:30 AM | 1.6 | 11 | 11 | 11.7 | 10.7 | 14.5 | 12.6 |
| 7:00 AM | 35.2 | 24.7 | 24.5 | 55.7 | 39.9 | 55.5 | 21.9 |
| 7:30 AM | 45.5 | 37.8 | 31.7 | 58 | 52.9 | 74.4 | 34.5 |
| 8:00 AM | 47.1 | 41.3 | 43.8 | 55 | 31.7 | 79.5 | 56.9 |
| 8:30 AM | 20.5 | 29.4 | 42.4 | 57.6 | 41 | 66.9 | 59.7 |
| 9:00 AM | 46.2 | 31.9 | 42.9 | 64.6 | 43.8 | 79.5 | 52.2 |
| 9:30 AM | 46.9 | 28.2 | 26.6 | 61.5 | 40.8 | 65 | 57.3 |
| 10:00 AM | 45.9 | 30.1 | 26.6 | 24.5 | 34.5 | 48 | 57.3 |
| 10:30 AM | 21.7 | 32.9 | 29.4 | 16.8 | 35.2 | 53.4 | 52.2 |
| 11:00 AM | 21 | 19.1 | 24 | 17.7 | 23.3 | 57.3 | 65.7 |
| 11:30 AM | 19.6 | 19.6 | 17.9 | 13.5 | 18.6 | 38.2 | 60.4 |
| 12:00 PM | 12.1 | 12.6 | 19.1 | 35.2 | 34.5 | 29.8 | 57.1 |
| 12:30 PM | 10 | 9.8 | 14.9 | 33.6 | 32.6 | 30.1 | 51.5 |
| 1:00 PM | 9.6 | 12.6 | 16.8 | 31.7 | 33.8 | 26.1 | 30.8 |
| 1:30 PM | 8.6 | 13.8 | 13.1 | 6.3 | 11.9 | 21.7 | 39.9 |
| 2:00 PM | 10 | 16.1 | 29.1 | 12.4 | 14.2 | 20.3 | 45.5 |
| 2:30 PM | 13.1 | 15.2 | 58.5 | 17.9 | 42 | 17.5 | 35.7 |
| 3:00 PM | 22.8 | 23.3 | 66 | 29.8 | 55 | 21.9 | 64.6 |
| 3:30 PM | 29.8 | 33.8 | 62 | 60.6 | 64.6 | 20.3 | 62 |
| 4:00 PM | 57.1 | 49.7 | 64.6 | 68.1 | 60.6 | 33.3 | 65 |
| 4:30 PM | 75.5 | 62.2 | 72.5 | 65 | 77.2 | 39.2 | 57.1 |
| 5:00 PM | 76.7 | 76.2 | 79.7 | 58.5 | 82.1 | 43.1 | 61.1 |
| 5:30 PM | 57.3 | 66.9 | 59.4 | 50.8 | 60.1 | 31 | 47.3 |
| 6:00 PM | 27.5 | 45 | 40.6 | 39.6 | 29.1 | 17.7 | 11.4 |
| 6:30 PM | 15.2 | 12.6 | 13.3 | 9.6 | 10 | 8.6 | 4 |
| 7:00 PM | 2.6 | 3.5 | 4.4 | 4 | 2.8 | 2.3 | 1.2 |
| 7:30 PM | 0.9 | 1.9 | 2.1 | 1.6 | 1.2 | 0.9 | 0.5 |
| 8:00 PM | 0.7 | 1.6 | 1.6 | 0.9 | 0.7 | 0.5 | 0.5 |
| 8:30 PM |
Occupancy = booked court-time ÷ (3 courts × operating hours) per weekday/time slot. Busiest: Friday 5:00 PM (82.1%).
Court usage
Court Utilization by Court
Occupancy % · 2024-01-01 to 2026-09-27 · hover a cell for its exact %.
Court 1
avg 37.1% · peak Mon 4:30 PM| Mo | Tu | We | Th | Fr | Sa | Su | |
|---|---|---|---|---|---|---|---|
| 6:00 AM | |||||||
| 6:30 AM | |||||||
| 7:00 AM | |||||||
| 7:30 AM | |||||||
| 8:00 AM | |||||||
| 8:30 AM | |||||||
| 9:00 AM | |||||||
| 9:30 AM | |||||||
| 10:00 AM | |||||||
| 10:30 AM | |||||||
| 11:00 AM | |||||||
| 11:30 AM | |||||||
| 12:00 PM | |||||||
| 12:30 PM | |||||||
| 1:00 PM | |||||||
| 1:30 PM | |||||||
| 2:00 PM | |||||||
| 2:30 PM | |||||||
| 3:00 PM | |||||||
| 3:30 PM | |||||||
| 4:00 PM | |||||||
| 4:30 PM | |||||||
| 5:00 PM | |||||||
| 5:30 PM | |||||||
| 6:00 PM | |||||||
| 6:30 PM | |||||||
| 7:00 PM | |||||||
| 7:30 PM | |||||||
| 8:00 PM | |||||||
| 8:30 PM |
Court 2
avg 23.8% · peak Sat 8:00 AM| Mo | Tu | We | Th | Fr | Sa | Su | |
|---|---|---|---|---|---|---|---|
| 6:00 AM | |||||||
| 6:30 AM | |||||||
| 7:00 AM | |||||||
| 7:30 AM | |||||||
| 8:00 AM | |||||||
| 8:30 AM | |||||||
| 9:00 AM | |||||||
| 9:30 AM | |||||||
| 10:00 AM | |||||||
| 10:30 AM | |||||||
| 11:00 AM | |||||||
| 11:30 AM | |||||||
| 12:00 PM | |||||||
| 12:30 PM | |||||||
| 1:00 PM | |||||||
| 1:30 PM | |||||||
| 2:00 PM | |||||||
| 2:30 PM | |||||||
| 3:00 PM | |||||||
| 3:30 PM | |||||||
| 4:00 PM | |||||||
| 4:30 PM | |||||||
| 5:00 PM | |||||||
| 5:30 PM | |||||||
| 6:00 PM | |||||||
| 6:30 PM | |||||||
| 7:00 PM | |||||||
| 7:30 PM | |||||||
| 8:00 PM | |||||||
| 8:30 PM |
Court 3
avg 33.4% · peak Sat 9:30 AM| Mo | Tu | We | Th | Fr | Sa | Su | |
|---|---|---|---|---|---|---|---|
| 6:00 AM | |||||||
| 6:30 AM | |||||||
| 7:00 AM | |||||||
| 7:30 AM | |||||||
| 8:00 AM | |||||||
| 8:30 AM | |||||||
| 9:00 AM | |||||||
| 9:30 AM | |||||||
| 10:00 AM | |||||||
| 10:30 AM | |||||||
| 11:00 AM | |||||||
| 11:30 AM | |||||||
| 12:00 PM | |||||||
| 12:30 PM | |||||||
| 1:00 PM | |||||||
| 1:30 PM | |||||||
| 2:00 PM | |||||||
| 2:30 PM | |||||||
| 3:00 PM | |||||||
| 3:30 PM | |||||||
| 4:00 PM | |||||||
| 4:30 PM | |||||||
| 5:00 PM | |||||||
| 5:30 PM | |||||||
| 6:00 PM | |||||||
| 6:30 PM | |||||||
| 7:00 PM | |||||||
| 7:30 PM | |||||||
| 8:00 PM | |||||||
| 8:30 PM |
Reports that answer real club questions.
Payments, applicants, guest usage, court utilization, contact relay, and roster privacy all live in one place, with board roles kept separate from admin rights.