Gym Revenue & Software

Why You Should Not Pay for Athletes Who Are Not Training

By Ryan SchickFounder, L4 Performance / COO, Orillia Sports Medicine

7 min read

You Are Paying for Names, Not Training

Most facility software prices you on your total roster. Every name in the database counts against your plan, whether that athlete trained last week or finished a season two years ago and never came back. For a general adult gym with a stable membership base, that might be close enough to real usage. For a youth sports facility, it is not.

Youth sports is seasonal. Kids finish a season, move up a level, change clubs, move away, or simply stop. Your database keeps every one of those names. Your invoice does too. Those names give nothing back - no sessions logged, no programs run, no testing data - and they still sit on the bill every month.

Why a Seasonal Roster Makes This Worse

A facility that trains hockey, soccer, or multi-sport youth athletes is always carrying two rosters at once: the athletes who are actually in the building right now, and the much longer list of everyone who has ever been on a team, a camp, or a trial block. The second list grows every intake cycle. The first list rises and falls with the calendar.

If software bills the long list, the cost of your tools quietly tracks history instead of work. A spring tryout camp that adds 40 athletes for three weeks can still be on the invoice the following winter. A group that aged out of your program last year still inflates the count. You are not being charged for capacity you use. You are being charged for memory the software refuses to forget.

Active Means a Precise Test, Not a Feeling

The alternative is to count only active athletes. Precision matters here, because a vague "active membership" flag is how names stay on the bill forever. On L4, an athlete counts as active if either of these is true:

  • They completed a training session in the last 90 days, or
  • They currently hold an active program assignment.

That is the whole test. Not "still in the database." Not "parent never asked us to delete them." Not "we might see them again next season." If they have not trained in 90 days and they have no program assignment, they do not count toward the facility plan.

Archive someone who has moved on and they stop counting the same day. Bring them back later and they count again when they train or when a coach assigns a program. The meter is tied to work happening now, not to the lifetime of the record.

One Real Roster Split

Numbers make this less abstract. One facility running on L4 has 669 athletes on its full roster. By the 90-day active test above, about 440 of those athletes count as active on a given day. The remaining 230 or so - roughly a third of the roster - cost that facility nothing on the plan.

Those athletes are not a data-quality failure. They are the normal residue of youth sports: finished seasons, graduated age groups, families who moved, kids who tried a block and chose a different sport. Under a total-roster model, every one of them would still be on the bill. Under an active model, they are not.

Flat Rungs Beat a Per-Athlete Meter

How the active count turns into a price matters as much as how the count is defined. A pure per-athlete meter - a few dollars for every active name - looks fair on a spreadsheet and works poorly in a seasonal business. Every new signup becomes a cost decision. A coach who should add an athlete without thinking twice starts doing the quiet math of "is this one more line on next month's invoice worth it?" That friction does not show up in a product demo. It shows up as incomplete rosters and delayed onboarding.

L4 prices facilities on flat rungs instead. Free under 25 active athletes. $99.99 CAD per month up to 500 active athletes. $139.99 for 501 to 1,000. $199.99 for 1,001 to 2,000. All plus HST. Inside a rung, adding an athlete costs nothing extra. A coach can take a full team mid-season, run a camp, or bring back a group for testing without asking what the software will charge for the headcount.

That is the operational point of a flat rung for 25 to 500 active athletes: inside that range, growth is free of software friction. The bill does not tick up every time someone fills out an intake form.

The Tradeoff Is Real

Honesty about the model is part of why it holds up. Inside a rung, a facility with 30 active athletes pays the same as one with 490. There is no pretend that those two facilities "use the same amount of software." They do not. The argument is not that the model has no tradeoffs. The argument is that for a seasonal youth roster, predictable rungs beat a meter that punishes every signup and never forgets an old name.

A facility sitting at 30 active athletes on the $99.99 rung is paying more per active athlete than a facility sitting at 450. That is the cost of a simple ceiling instead of a per-head calculator. In return, neither facility is paying for the third of the roster that has already moved on, and neither coach has to think about software cost when they add the next athlete inside the rung.

Tiers Move Down as Well as Up

Seasonality cuts both ways. Active counts fall after a program ends, after summer camp wraps, or when a large age group ages out. A pricing model that only ratchets up is still a tax on the quieter months.

On L4, the facility tier moves in both directions automatically. If the active count falls into a lower rung, the next invoice drops on its own. No phone call. No support ticket. No annual re-negotiation. A change also never lands mid-cycle as a surprise proration - it takes effect on the next invoice, so the bill stays predictable within the current cycle and then follows the real active count.

That is what "active" pricing is supposed to mean in practice: the software tracks who is training, bills against that, and gets out of the way when the roster contracts the way youth sports always does.

Software Cost Is Only Half the Revenue Picture

Controlling what you pay for inactive names is one side of the ledger. The other is building products parents can choose to pay for on top of training - ranking, season reports, and structured home program blocks - without adding floor hours. That side is designed as a separate revenue line, not as a way to justify a higher software bill. For how that parent-paid layer is set up, see the revenue stream most gyms are missing.

For the full software and revenue picture, including how testing days feed both facility fees and parent-facing products, see our gym revenue and software guide.

Frequently asked questions

What counts as an active athlete?

On L4, an athlete is active if they completed a training session in the last 90 days or currently hold an active program assignment. Names still in the database who meet neither test do not count toward the facility plan.

What happens when I archive an athlete who stopped training?

They stop counting toward the active total the same day. If they return later, they count again once they complete a session or receive an active program assignment.

Does the facility plan price drop if our active count falls?

Yes. The tier moves in both directions automatically. If active athletes fall into a lower rung, the next invoice drops without a phone call or a request. Changes take effect on the next invoice, not as mid-cycle proration.

Why not charge a few dollars per active athlete instead of flat rungs?

A per-athlete meter makes every new signup a cost decision and can quietly discourage coaches from adding athletes. A flat rung covering a wide active range means adding someone inside that range does not change the software bill. The tradeoff is that facilities near the bottom of a rung pay the same as facilities near the top.

What are L4's facility price rungs?

Free under 25 active athletes. $99.99 CAD per month for up to 500 active athletes, $139.99 for 501 to 1,000, and $199.99 for 1,001 to 2,000, all plus HST. A booking add-on is $100 CAD per month. Parent-facing products are priced separately.