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-07-29 · darker = busier. Built from 9680 historical reservations.
| Mon | Tue | Wed | Thu | Fri | Sat | Sun | |
|---|---|---|---|---|---|---|---|
| 6:00 AM | 0.5 | 1.7 | 2 | 1 | 1.2 | 1.5 | 1 |
| 6:30 AM | 1.7 | 11.6 | 11.6 | 12.4 | 11.4 | 15.4 | 13.4 |
| 7:00 AM | 37.3 | 26.2 | 25.9 | 59.5 | 42.5 | 59.2 | 23.4 |
| 7:30 AM | 48.1 | 40 | 33.6 | 61.9 | 56.5 | 79.4 | 36.8 |
| 8:00 AM | 49.9 | 43.7 | 46.4 | 58.7 | 33.8 | 84.8 | 60.7 |
| 8:30 AM | 21.7 | 31.1 | 44.9 | 61.4 | 43.8 | 71.4 | 63.7 |
| 9:00 AM | 48.9 | 33.8 | 45.4 | 68.9 | 46.8 | 82.6 | 55.7 |
| 9:30 AM | 49.6 | 29.9 | 28.1 | 65.7 | 43.5 | 67.2 | 61.2 |
| 10:00 AM | 48.6 | 31.9 | 28.1 | 26.1 | 36.8 | 51.2 | 61.2 |
| 10:30 AM | 23 | 34.8 | 31.1 | 17.9 | 37.6 | 57 | 55.7 |
| 11:00 AM | 22.2 | 20.2 | 25.4 | 18.9 | 24.9 | 61.2 | 70.1 |
| 11:30 AM | 20.7 | 20.7 | 19 | 14.4 | 19.9 | 40.8 | 64.4 |
| 12:00 PM | 12.8 | 13.3 | 20.2 | 37.6 | 36.8 | 31.8 | 60.9 |
| 12:30 PM | 10.6 | 10.4 | 15.8 | 35.8 | 34.8 | 32.1 | 55 |
| 1:00 PM | 10.1 | 13.3 | 17.8 | 33.8 | 36.1 | 27.9 | 32.8 |
| 1:30 PM | 9.1 | 14.6 | 13.8 | 6.7 | 12.7 | 23.1 | 42.5 |
| 2:00 PM | 10.6 | 17 | 30.9 | 13.2 | 15.2 | 21.6 | 48.5 |
| 2:30 PM | 13.8 | 16 | 62 | 19.2 | 44.8 | 18.7 | 38.1 |
| 3:00 PM | 24.2 | 24.7 | 69.9 | 31.8 | 58.7 | 23.4 | 66.7 |
| 3:30 PM | 31.6 | 35.8 | 65.7 | 64.7 | 68.9 | 21.6 | 63.9 |
| 4:00 PM | 60.5 | 52.6 | 68.4 | 72.6 | 64.7 | 35.6 | 67.2 |
| 4:30 PM | 78 | 65.9 | 76.8 | 69.4 | 82.3 | 41.8 | 60.9 |
| 5:00 PM | 79.3 | 80.7 | 84.4 | 62.4 | 87.6 | 46 | 65.2 |
| 5:30 PM | 58.8 | 70.9 | 63 | 54.2 | 64.2 | 33.1 | 50.5 |
| 6:00 PM | 29.1 | 47.7 | 43 | 42.3 | 31.1 | 18.9 | 12.2 |
| 6:30 PM | 16 | 13.3 | 14.1 | 10.2 | 10.7 | 9.2 | 4.2 |
| 7:00 PM | 2.7 | 3.7 | 4.7 | 4.2 | 3 | 2.5 | 1.2 |
| 7:30 PM | 1 | 2 | 2.2 | 1.7 | 1.2 | 1 | 0.5 |
| 8:00 PM | 0.7 | 1.7 | 1.7 | 1 | 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 (87.6%).
Court usage
Court Utilization by Court
Occupancy % · 2024-01-01 to 2026-07-29 · hover a cell for its exact %.
Court 1
avg 39.3% · 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 25.3% · 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 35.5% · peak Mon 9: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 |
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.