Turf time and league nights on the same grid.
Training blocks, drop-in sessions, and league fixtures all have to sit on the same turf without colliding. One grid, one member record, one revenue number — with pricing and session length configured per pitch rather than fixed to somebody else’s idea of an hour.
Sound familiar?
- League nights blocked out in one calendar while walk-up rentals get taken in another
- Team dues collected by the captain over a payment app and reconciled by hand
- Training blocks, drop-ins, and fixtures each living in a different spreadsheet
- No read on which hours actually sell and which turf sits empty midweek
One system, six modules, one ledger.
Pitch time on a grid that can’t double-book
Pricing rules and session length are set per pitch, with peak and off-peak windows and maintenance holds — and a Postgres constraint that makes two overlapping bookings on the same pitch structurally impossible.
Dues and session packs on one ledger
Recurring plans and prepaid packs live on one member record with a card on file. Renewals run through Stripe and failed payments get chased by dunning rather than by a captain in a group chat.
Leagues, camps, and academy blocks with real rosters
Leagues, holiday camps, and academy sessions run as programs with capacity limits, levels, and waitlists that promote automatically when a spot frees up.
Concessions and rentals on the same tab
Drinks, gear, and equipment rental charge to the same account as pitch time — one revenue number, broken out by space or category on demand.
Fill the midweek hours
Describe the send, the AI drafts it in your facility’s voice and segments by who books and how often — you approve before it ships.
Which hours sell, and which don’t
Three ranked moves every morning with dollar estimates attached — the dead midweek slots, the teams that stopped rebooking, the program worth running next.
Questions worth asking
Can league fixtures and open rentals share the same pitches?+
Yes — leagues, camps, and one-off rentals all draw from the same pitch inventory, so there is one grid rather than a fixture list taped next to a booking app.
Can each pitch have its own pricing and session length?+
Yes. Session length and pricing rules are configured per space, so a full-size pitch on 60-minute training blocks and a smaller space on shorter sessions run from the same account.
How do teams pay?+
Team dues and bookings both settle against a member record with a card on file, and failed payments are chased automatically by dunning instead of by hand.
Can you import our existing customer list?+
Yes — a CSV import wizard maps your export’s columns to member records and validates every row before anything commits.
See it on your indoor soccer & futsal' own schedule.
A 20-minute walkthrough, tailored to your facility’s size and how you actually run it.