Gym Occupancy Analytics: Peak Hours From Check-Ins

Count check-ins per hour, multiply by average visit length, and compare class rosters with capacity. Formulas, an example peak-hour grid, data pitfalls and what to change once you know your busy hours.

Trainera Team
October 11, 2026
9 min read
Gym Occupancy Analytics: Peak Hours From Check-Ins
gym occupancy analyticsgym peak hoursgym check-in dataclass fill rategym attendance tracking

Get your free AI training and nutrition plan in 60 seconds

How do you measure gym occupancy with check-in data?

You measure gym occupancy by counting check-ins per hour and multiplying by the average visit length: 60 entries an hour with a 75-minute average visit means about 75 people in the building at the peak of that hour. Class fill rate is booked or attended places divided by capacity. A check-in log plus a spreadsheet is enough; you do not need a dedicated occupancy system to start.

The catch is that most gyms record entries, not exits. Without a check-out, occupancy is an estimate, and how good it is depends on how cleanly every visit gets recorded. The rest of this guide covers the formulas, the data problems that skew them, and what to change once you know your peaks.

The three occupancy numbers worth tracking

Three numbers cover almost every decision: entries per hour, estimated people inside, and class fill rate.

MetricFormulaData you needDecision it supports
Entries per hourCount of check-ins in each hour, per weekdayOne check-in per visit with a timeStaff rota, cleaning times, front desk cover
Estimated people insideEntries per hour x average visit length in hoursEntries plus an average visit length (measured or estimated)Crowding, equipment pressure, member experience
Class fill rateBooked (or attended) places / class capacityClass roster and the room or class capacityWhich classes to add, move or cancel
No-show rate(Booked minus attended) / bookedRoster plus attendance marks or check-insWaitlist and booking rules

Average visit length is the input most gyms do not have. If you have no check-out data, time a sample yourself: note entry and exit for a few dozen members across different days, or ask staff to log it for a week. Use the result as an assumption and say so in your reports.

How to find your peak hours

Group a few weeks of check-ins by weekday and hour; the busiest cells are your peaks.

  1. Take at least four weeks of check-ins, so one odd week does not decide your rota.
  2. Build a grid: weekdays across, hours down, entries in each cell.
  3. Average each cell across the weeks.
  4. Mark the top cells. Those are the hours where crowding, waiting for racks and front-desk queues happen.
  5. Repeat each quarter, and after any price change, new class or opening-hours change.

Here is an illustrative weekday grid for a mid-size club. The numbers are an example, not a benchmark; your own data will look different.

HourMonWedSatEstimated people inside (Mon, 75-min visit)
06:00-07:0035328about 44
12:00-13:00283040about 35
17:00-18:00625825about 78
18:00-19:00706618about 88
20:00-21:0030276about 38

For context on scale: swiss active reports an average of 1,007 members and 6,077 check-ins a month per fitness center in Switzerland in 2025 (swiss active Eckdatenstudie 2026), and the UK has 12.2 million members across 5,842 clubs (UK Active market report, April 2026). Membership is not attendance, though: only your check-in data tells you how many of those members actually come, and when.

Estimating how many people are inside without check-outs

Without exits, estimate people inside from recent entries: everyone who checked in within the last average visit length is probably still there.

A simple rolling method: at 18:30, count check-ins between 17:15 and 18:30 if your average visit is 75 minutes. That count is your estimated occupancy at 18:30. It runs slightly high for people who leave early and low for people who stay long, and it averages out over weeks.

Two ways to make it better:

  • Measure visit length separately for different groups if they behave differently, for example class members versus open-gym members.
  • Compare the estimate with a manual headcount a few times. If the estimate is consistently 20% off, adjust the visit length rather than trusting the formula blindly.

Class fill rates and no-shows

For classes, the roster gives you better data than door entries, because you know both capacity and who booked.

  • Track fill rate per recurring class slot, not per class type. A Tuesday 18:00 spin and a Thursday 07:00 spin are different products.
  • Track no-shows separately. A class that is 100% booked and 60% attended needs booking rules, not a second slot.
  • Look at the waitlist (or the people who tried to book) before adding a slot. Consistent overflow is the signal; one busy week is not.
  • Low fill for many weeks in a row means move the time, change the format or replace the class.

Our guide to gym class scheduling and booking software covers how booking rules and waitlists work in practice.

Data problems that distort occupancy numbers

Occupancy analysis is only as good as the check-in log; missing, duplicate and late entries all bend the curve.

  • Missed check-ins. If staff wave members through at busy hours, your peaks look smaller than they are. That is the worst possible time to undercount.
  • Tailgating. At gates, two people on one entry undercounts. A spot check at peak hours tells you how big the gap is.
  • Late-recorded entries. Check-ins that are recorded later than the visit, for example after an internet outage at reception, land in the wrong hour. Treat them separately in hour-by-hour counts.
  • Non-visit rows. Records created at sign-up or by staff for admin reasons are not visits. Filter them out.
  • Mixed methods. If some members scan and others are checked in by hand, compare the share of each method across hours. A jump in manual check-ins at peak often means the scanner queue was too long.

Check-in data is personal data about your members' habits. The gym is the controller of that data, so check your own privacy obligations, keep only what you use, and offer a non-biometric option if you use biometric access; in Spain the data protection authority fined a gym for making fingerprint access mandatory with no alternative (Conprodat, 2024, secondary report).

Splitting occupancy by membership package

Peaks look different once you split check-ins by the package each member holds, and that split is what pricing decisions need.

Match each check-in to the member's package and rebuild the hour grid per package. Look for three patterns, each pointing to a different move:

  • One package drives most of the evening peak. If a low-priced package fills your busiest hours, an off-peak version at a lower price, and a slightly higher price for full access, spreads the load without cutting revenue per visit.
  • Some packages barely appear in the log. Members who pay but rarely come are a retention risk, not a capacity problem. Contact them before renewal time.
  • Class packages cluster around a few slots. That tells you where a second instructor or a larger room pays off.

Keep the comparison simple: share of each package's check-ins that fall in your top peak hours. A table with one row per package and one percentage is enough to start a pricing conversation.

What to do with your peak-hour data

Use the numbers to move staff, classes and promotions toward the hours members actually use, and away from guessing.

What you seeWhat to try
Weekday evening peak far above the restExtra floor staff and front-desk cover at that hour; cleaning before, not during
Quiet midday hoursOff-peak package or classes for shift workers, parents and retirees
Classes full with high no-showsBooking deadline, late-cancel rule, waitlist promotion
Classes under-filled for weeksMove the slot toward a busier hour or replace the format
Members who stop appearing in the logReach out before they cancel; our churn reduction playbook has the steps

Peaks also belong in your weekly KPI review next to sales and retention; see the 8 gym KPIs to track weekly.

Where Trainera fits

Trainera records the check-ins and class rosters you need for this analysis; it does not provide a dedicated occupancy dashboard, so the peak-hour math above is yours to run.

  • Check-in methods: members check in with a digital member card and QR code in the member app, and staff can check members in manually from the gym overview.
  • Source on every record: each check-in is recorded with its source: QR, manual, turnstile, registration or offline. That lets you separate real door entries from admin rows and spot when manual check-ins spike at peak. Hardware and specific gate integrations depend on your setup, so check them with Trainera before you buy equipment.
  • Classes: the class planner supports recurring series and rosters, so fill rate per slot is a roster count against your room capacity.
  • TRAI for gyms: every gym plan includes TRAI with 200 requests a month. It is read-only on gym data and can answer questions about members, leads, packages, classes and reservations. The sibling post on questions gym owners can ask TRAI has examples.

Gym plans are Core $119, White Label $219 and Studio $259 a month in US dollars, with the first 3 trainers included; prices differ by country on trainera.fit/pricing. More on scanning in our post on gym QR check-in and attendance, and on entry hardware in gym check-in and access control software.

A four-week occupancy routine you can start Monday

  1. Week 1: make sure every visit is checked in, at every hour, by every method. Fix the busy-hour gaps first.
  2. Week 1: time a sample of visits to get your average visit length.
  3. Weeks 1 to 4: collect check-ins and class rosters without changing anything.
  4. End of week 4: build the weekday-by-hour grid, the estimated-occupancy column and fill rate per class slot.
  5. Pick one change (staff, a class time or an off-peak offer), make it, and compare the next four weeks.

Run check-ins, classes and memberships from one dashboard with Trainera for gyms.

Frequently Asked Questions

How do gyms know how busy they are?

Most count check-ins per hour. Without check-outs, multiply entries per hour by the average visit length to estimate how many people are inside.

What are the busiest hours at a gym?

It differs by club, so use your own data. Group at least four weeks of check-ins by weekday and hour; the highest cells are your peaks.

How do you calculate class fill rate?

Booked or attended places divided by class capacity, tracked per recurring slot. Track no-shows separately: booked minus attended, divided by booked.

Can I track gym occupancy without turnstiles?

Yes. QR or manual check-ins give you entries per hour, which is enough to find peaks and estimate occupancy, as long as every visit is recorded.

Does Trainera have an occupancy dashboard?

No dedicated occupancy dashboard. Trainera records each check-in with its source (QR, manual, turnstile, registration, offline) and keeps class rosters, which is the data the analysis needs.

Put this into practice with Trainera

Get your free AI training and nutrition plan in 60 seconds

1800+ exercises, wearables and progress tracking, free with no card needed. AI food scanning comes with Premium. Train solo or with a certified coach.

Share This Post