October 11, 2026
How We Built Tryouts, E-Sign, and Payment-Gating as One Flow
Most club software treats tryout evaluation, offer signing, and payment as three separate features that happen to live in the same product. We built them as one flow, deliberately, because that's how they actually work in practice — and treating them as separate steps is exactly what creates the manual reconciliation work directors end up doing by hand.
The problem with treating these as separate steps
The conventional pattern looks like this: evaluations happen in one place (a spreadsheet, a form, sometimes a dedicated scoring tool). Once placement decisions are made, an offer gets generated — often a PDF, sent by email. Once the family signs, a separate payment step kicks off, frequently through a different tool entirely. Three steps, three systems, and a director manually checking that each one actually completed before treating an athlete as committed.
The failure mode isn't rare — it's the default outcome of this pattern. A family signs but doesn't pay. A family pays but the signed document never made it back. An offer goes out to the wrong tier because the evaluation score used to generate it was pulled from a spreadsheet that had already been updated by then. Every one of these requires a director to notice, investigate, and manually correct — because nothing in the system itself is watching for the mismatch.
What "one flow" actually means architecturally
We treat the offer, signature, and payment as sequential states of a single record, not three independent processes that happen to relate to each other — with tryout evaluation feeding the decision of who gets an offer in the first place, rather than being wired into the record itself. Concretely: once a director sends an offer, it lives as one record from that point forward — the family signs in-platform rather than via a separate document tool, and that same record then gates on payment before the athlete gets an actual roster spot.
The gating is the part that matters most. The offer's signature status updates the moment a signature comes in — but the roster spot doesn't. A player isn't added to the roster until signature and payment are both true. That's not a UI nicety — it closes the exact gap that causes the most director-facing confusion in the conventional pattern: a signed-but-unpaid state that looks committed but isn't, and that someone has to manually catch before it causes a roster problem.
Why this was harder to build than it sounds
The genuinely hard part wasn't any single piece — e-signature and payment processing are both well-solved problems individually. The hard part was making the state transitions atomic and consistent: ensuring a partial completion (signed, not paid; paid, not signed) never gets treated as a real roster spot anywhere else in the system, including in a coach's roster view or a director's cross-team dashboard. That required designing the offer record's state machine — and routing every path that can create a roster spot through the same single check — before writing the individual feature code: e-sign and payment both had to agree on what "confirmed" means before either could be built.
It also meant resisting the temptation to ship each piece independently and stitch them together later. Building e-signature as its own feature, then payment as its own feature, then bolting a manual "check both" step on top would have reproduced the exact reconciliation burden we were trying to eliminate — just inside our own product instead of across a director's five separate tools.
What it removes for a director
The practical result: a director never has to cross-reference "did they sign" against "did they pay" against "what team were they placed on." Those three facts live on one record, and the record's status reflects all three at once. The reconciliation work that used to be a director's job — chasing down mismatches between disconnected steps — doesn't exist, because there's nothing disconnected left to reconcile.
This flow — offer, e-signature, and payment-gating as one continuous state, picking up where tryout evaluation leaves off — is core to how TravelSportsHQ handles the tryout-to-roster pipeline.
Your season, one place.
See how TravelSportsHQ handles this for a real club.
