← All notes Studio data

Why Your Studio's Numbers Never Match

266. 230. 240. 249. Same members, same Tuesday.

At the close of Tuesday, March 31, Sam, the owner of Alturra Studios, asks the question every owner gets asked: how many members do we have? Four sources give four answers. The booking platform's member report says 266. The billing list for tomorrow's run says 230. March's membership dues in the P&L, divided by the $169 price, say 240. The spreadsheet Sam updates every Sunday says 249.

Only one line in all four is a mistake. The rest are rules: each source answers its own question, about its own day, with its own idea of who counts. This piece names the rule behind every gap and ends with the rule sheet that makes them agree. Alturra is invented, the same studio and the same March as the retention-rate piece: 240 members at $169 on March 1, and during March 18 joined, 12 canceled and 4 froze. Under the rules Sam wrote down in January, that leaves 246 members on March 31: 242 active and 4 paused.

Member report · booking platform266+20 against the rulescomps, staff and intro offers on it; paused members off it
Billing list · the April 1 run230−16 against the rulespaid-in-full and paused members have nothing to charge
P&L · March dues ÷ $169240−6 against the rulesset on March 1, before 18 joined and 12 left
Sam's spreadsheet · last updated Sunday249+3 against the rulesan old freeze formula, pack regulars, two days old, two people twice
Alturra's rule sheet · March 31246242 active + 4 paused
worked example on an invented studio · one studio, one day, four sources · every gap is a rule except one mistake

The four counts in one minute

  • None of the four is wrong about its own question. Each answers a different question about a different day, and only one line in all four is a plain mistake.
  • Every gap has a name. Set each source beside one count made under written rules, and the difference comes apart into rules: comps, staff accounts, intro offers, freezes, paid-in-full, the count date.
  • Write the rules down once, and date them. Count people from a list of people and money from the books, and let one page decide who counts.
SourceThe question it answersMarch 31Gap to 246What moves it
Member reportwho holds a current membership pass today266+20comps +5, staff +7, intro offers +12, paused −4
Billing listwho will be charged on April 1230−16paid in full −12, paused −4
P&L ÷ $169what March's dues came to, set on March 1240−6joined in March −18, canceled in March +12
Sam's spreadsheetwhat was counted on Sunday249+3pack regulars +7, entered twice +2, paused −4, joined since Sunday −2
The rule sheetwho counts, in writing246none242 active + 4 paused

Why do studio reports show different member counts?

Because each source answers a different question, about a different day. The member report answers who holds a current membership pass right now, the billing list who will be charged on the next run, the P&L what the month's dues came to, and the spreadsheet what somebody counted the last time they counted. None of them answers "how many members do we have", because that question has no answer until someone writes down who counts.

Before any rule comes in, the four numbers are not even about the same day.

Four numbers, four daysMarch 1 to April 1, drawn to scale
Sun, Mar 1The P&L · March's dues, set that morning240
Sun, Mar 29Sam's spreadsheet · last updated249
Tue, Mar 31The member report · run at the close266
Wed, Apr 1The billing list · tomorrow's run230
Tue, Mar 31The rule sheet · the count date, under written rules246
worked example on an invented studio · of the four sources, only the member report describes March 31, and it has rules of its own

For three of the four, part of the gap is only the calendar. The rest is rules, one source at a time.

What does the booking platform's member report count?

Whatever passes the report is set up to include, on the day it runs. Alturra's lists every client holding a current pass of a membership type. Years ago, whoever set up the platform made comps a $0 membership, gave staff a staff membership and sold the $99 intro offer as a 30-day membership, so all three land on the report beside paying members. And the way Alturra's report is filtered, a frozen pass is not a current one, so the four paused members drop off it.

From the rule sheet to the member reportMarch 31 · each square is one person
Members under Alturra's rules246
Paused members · a frozen pass is not current on this report−4
Comps · set up as a $0 membership+5
Staff accounts · a staff membership+7
Intro offers · sold as a 30-day membership+12
The member report266
worked example on an invented studio · 246 − 4 + 5 + 7 + 12 = 266 · 24 non-members on it, 4 members off it

So 24 people who are not members under Alturra's rules are on the report, and 4 members are not. The platform is not getting anything wrong: a report counts what it is set up to count, and depending on how it is set up, Alturra's could read 266 or, with packs and freezes included, 330, the long list the member definitions piece walks down to 246. Where your platform lets you filter by pass type, filter to members only; where it does not, keep the bridge beside the report, the few lines that turn one number into the other: 266, less 24, plus 4.

Why is the billing list a different number?

Because it counts charges, and a member with nothing to charge is not on it. The billing list, whatever your platform calls it, is the set of memberships due to be charged on the next run. Alturra bills monthly dues on the 1st, and on March 31 the April 1 run held 230 charges worth $38,730.

Two rules explain the gap to 246. The 12 members who paid for a year last September have nothing to charge until their terms end in August, and at Alturra a paused membership has nothing to charge while it is frozen. All 16 are members under Alturra's rules. The list is right about what it is for, who pays next and how much, and 16 short of the members.

The April 1 run, as it stood on March 31each square is one member
223at $169 · $37,687
5moved down to $129 · $645
2moved up to $199 · $398
12paid in full · nothing to charge
4paused · nothing to charge
230 charges · $38,730246 members − 12 paid in full − 4 paused = 230
worked example on an invented studio · 223 × $169 + 5 × $129 + 2 × $199 = $38,730

Can you count members from the P&L?

Not reliably: membership revenue divided by the price counts dollars, on the day they were set, at one price. Alturra's March P&L shows membership dues of $40,560, and $40,560 ÷ $169 is 240.

That is Alturra's count on March 1, not March 31. Monthly dues are billed on the 1st, and Alturra's accountant spreads each paid-in-full year across its twelve months, so March's line is the 228 memberships billed that morning plus the 12 paid-in-full members at $169 each. The 12 who canceled during March were billed on the 1st, and the 18 who joined after it were not: 240 + 18 − 12 = 246. The four who froze were members on the 1st and, under the 60-day rule, still are, so they need no line.

How the money is booked moves the division too: on books that record a paid-in-full year on the day it is paid, those 12 members sit in September's line, and March's reads $38,532, or 228 members. From April it goes wrong in two new ways. The four paused members pay nothing while frozen, so the division counts them as gone, and seven plan changes, five down to $129 and two up to $199, bring in $1,043, which it reads as 6.2 members.

Counting members from the P&LAlturra · March dues
$40,560 ÷ $169= 240
228 memberships billed on March 1, plus 12 paid-in-full years carried at $169 a month
18 joined after the 1st, 12 canceled after it · the count on March 31240 + 18 − 12 = 246
Paid-in-full booked when paid · the 12 years land in September$38,532 ÷ $169 = 228
From April · 4 paused members pay nothing4 read as gone
From April · 7 plan changes at $129 and $199$1,043 ÷ $169 = 6.2
The division is right about dollars every time. It is right about people only when every member pays one price, once, on the day you count.
worked example on an invented studio · 228 × $169 + 12 × $169 = $40,560 · 5 × $129 + 2 × $199 = $1,043

None of this is the books' fault. The P&L is right about money, and the chart of accounts piece ties the platform's sales to the processor's payouts and the bank in two hops for the same reason: each system is right about its own part. A card that fails drops out of the money until it is collected, one more reason a failed payment needs its own list. Count people from a list of people and money from the books, and use the division only as a check.

Why does the spreadsheet drift?

Because a spreadsheet keeps the rules it was built with, and counts on the day it was last updated. Sam has kept Alturra's sheet for two years and updates it every Sunday from the exports. On Tuesday, March 31, it said 249.

Four lines explain the gap. The sheet was last updated on Sunday, so the two people who joined on Monday and Tuesday are missing. Its member formula is older than the January rule sheet and drops a member the day her freeze starts, so the four paused members are gone. A hand-added column of "pack regulars" counts seven of Alturra's 60 pack holders who come every week and feel like members, but under the rules are customers. And two people appear twice, under a new surname and a nickname, because the sheet matches rows by name.

From the rule sheet to Sam's spreadsheeteach square is one person
Members under Alturra's rules · March 31246
Joined Monday and Tuesday · the last update was Sunday−2
Paused members · a formula older than the rule sheet−4
Pack regulars · a column added by hand+7
Two people entered twice · rows matched by name the one mistake+2
Sam's spreadsheet249
worked example on an invented studio · 246 − 2 − 4 + 7 + 2 = 249 · three rules and one mistake

The duplicates are the only mistake in all four sources. Everything else is a rule, applied faithfully by a formula nobody has read since it was written. How a studio spreadsheet is built, and the four ways it drifts, is its own piece. The short version: a definitions tab that every formula reads, and rows matched on the client ID, never the name.

Which day does a number belong to?

The day your rule sheet names, in your studio's own time zone, and the same day for every source. An active-member count is always as of a day, and so is every other number, including the ones that do not look dated.

  • A cancellation has two dates: the day she asked and the day it takes effect. Count the second; until then she has access and is a member.
  • A sale has a clock. A class pack sold at 9:40pm on March 31 is a March sale at the desk, and an export that dates sales in another time zone can file it under April 1.
  • A refund lands when it is issued, not on the day of the sale, so a closed month can shrink two weeks later.
  • Late money splits across months. A charge that fails on the 1st and clears on the 3rd of the next month leaves one month's dues a member short and the next a member long.

What goes on a studio's rule sheet?

One line for every decision that moved a number, written in words and dated. Alturra's has three parts, and the last column is what each line was worth on March 31.

DecisionAlturra's ruleWhat it moved on March 31
Who is a member
Membera current membership on the day you count, paid monthly or in full for a termthe base: 242 active, 4 paused
Freezea pause, not a loss, until day 60; counted as paused4 paused, off three of the four sources
Paid-in-fulla member all term; cannot leave mid-term12 members, off the billing list
Plan switchneither a cancellation nor a new join7 in March: moved the dues, not the count
Class packcustomers, not members, in a column of their own7 pack regulars on the sheet
Compnot a member; a comp ends when the studio ends it5 on the member report
Staff accountout of everything but class capacity7 on the member report
Intro offera trial; enters as new when she joins12 on the member report
Which day a number belongs to
Count datethe close of the first and last day of every month2 joiners missing from Sunday's sheet
Sale datethe day the money was taken, in the studio's own time zonedecides the month of a late-night sale
Cancellationthe day it takes effect, not the day she askeddecides who is a member at month-end
How to count
Heads and moneypeople from a list of people, dollars from the books; never divide one to get the otherthe P&L's 240, a month early
One personone record, matched on the client ID, never the name2 people counted twice on the sheet
Home siteone home site per member, by a written rule, never switchedone site today; write it before the second

Adopt the lines as they stand or change them. The member definitions piece argues each of the member lines, and the freeze piece covers the 60-day line. What matters is that the page exists, carries a date, and settles every argument.

What to do this week:

  1. Pull four numbers for one day: the member report, the billing list for the next run, last month's membership revenue divided by your main price, and any spreadsheet.
  2. Write the rule sheet, one line per row of the table above, and date it.
  3. Count once under the rules, with paused members in their own column. That count is the answer.
  4. Bridge each source to it, one line per rule, until every gap has a name. Whatever is left over is a mistake worth finding this week. Then repeat the bridge at each month-end.

Who should own the definitions?

The owner, on one dated page that every report follows. Each of Alturra's sources had someone who set it up: whoever set up the platform, the bookkeeper, Sam. The definitions had nobody until January, so each source kept the rules it was born with.

The spreadsheet shows what that costs. In January Sam decided that a short freeze is a pause, not an exit, and wrote it down. The sheet's member formula was two years old and never heard. Ownership comes down to three habits: the page carries a date; when a rule changes, everything built on the old rule is rebuilt or retired that week; and every number you report says which rules it used. A KPI dashboard with the definition written on every tile is the same habit on a screen.

What changes with a second location?

Two rules start to matter: one home site for every member, and company rates recomputed from summed counts, never averaged. A member who books at both sites can be counted at one, at both or at neither, depending on which report you pull, and the sites stop adding up to the company. Give her one home by a written rule, and show a row for the records that carry no location.

Rates are the other trap. Say Alturra opened a second room with 60 members and 6 of them canceled in a month, beside the first site's 12 of 240:

Averaging the sites(5.0% + 10.0%) ÷ 27.5%the 60-member site weighs as much as the 240-member one
Recomputed from counts(12 + 6) ÷ (240 + 60)6.0%the company's churn for the month
what-if on an invented studio · the second site is invented for the arithmetic · sum the counts, then divide

Multi-location reporting on Mariana Tek works through the location rules on one scoreboard, including the row for records with no home.

Where this lives

The rule sheet takes an afternoon. What slips is every report built after it, because each source keeps the rules it was set up with. Xyzios, the studio operating system, starts from your rules instead: you decide what counts as a member and whether a freeze counts as churn, and the boards follow. Paused members, people with a frozen membership and no active one, are counted as their own group, so the freeze decision stays in view instead of vanishing into a total.

It works with Mindbody and is an approved Mariana Tek integration, and your booking platform stays the system of record: nothing is written back to it except what you tap or approve. It reads your P&L from QuickBooks Online and your bank feed from Finta, both on the integrations page. With more than one location there is a per-location scoreboard with the company total, and on the Compare board the combined conversion rates are recomputed from summed counts, not averaged. Ask Xyzi answers plain-English questions about your own numbers and shows the sources behind each answer. Your platform's own reports go on counting their own way; the boards are where your rules apply.

Whatever you count in, start with one day and four numbers. Once the count is settled, the churn rate calculator shows what a month's churn does to a year, and the two-minute studio check shows which number needs you first.

Straight answers

Common questions.

Why does my booking software show more members than I actually have?

Often because of how its member report is set up. If it lists every current pass of a membership type, and comps, staff accounts and intro offers are set up as membership types, all of them land in the count. At the invented Alturra Studios the report said 266 on a day when the studio’s written rules said 246, because 5 comps, 7 staff accounts and 12 intro offers were on it and 4 paused members were not. Where your platform lets you, filter the report to members only; where it does not, keep the difference written beside it and check it every month.

Why doesn’t my member count match my billing list?

Because a billing list counts charges, and a member with nothing to charge is not on it. Paid-in-full members have nothing due until their term ends, and paused members have nothing due where a freeze stops the dues, so the list comes in under any member count that includes them. At Alturra the April 1 run held 230 charges while the written count was 246, and the 12 paid-in-full members and 4 paused members were the whole difference. The billing list answers who pays next, not how many members you have.

Can I work out my member count from membership revenue?

Only as a rough check. Dividing membership revenue by the price assumes everyone pays that price, everyone paid once in the month, and nobody joined or left after the dues were billed. At Alturra, March dues of $40,560 divided by $169 give 240, the count on March 1 when the dues were set, not the 246 members on March 31: 18 joined and 12 canceled after the 1st. Count people from a list of people and money from the books.

Should frozen memberships count as active members?

Count paused members as their own group, and decide in writing whether they count as members. One workable rule, and Alturra’s: a freeze under 60 days is a pause and still counts, and a freeze that passes 60 days without a return becomes churn. Whatever you choose, apply it in every report. At Alturra, three of the four sources left out the four paused members that the studio’s own rule counts.

Should comps, staff accounts and intro offers count as members?

Not in a member count. A comp takes a spot and pays nothing, a staff account never cancels and flatters retention, and an intro offer is a trial rather than a membership, so keep each in its own group where class capacity can still see it. Paid-in-full is the edge case that does count: a member every month of the term, even though the money arrived once. At Alturra, comps, staff accounts and intro offers put 24 people on the booking platform’s member report who are not members.

What is a single source of truth for a fitness studio?

One place where every number is worked out from the same data under one written set of definitions, so that member, revenue and churn mean the same thing on every report and at every location. It does not mean one vendor for everything. It means one dated rule sheet with an owner, and every number saying which rules it used.

Why don’t my locations add up to the company total?

Usually attribution. A member who books at two sites can be counted at one, at both or at neither depending on which report you run, and some records carry no location at all. Give every member one home site by a written rule, show a row for the records with none, and recompute company rates from summed counts instead of averaging the sites. A 240-member site that loses 12 and a 60-member site that loses 6 make 6.0% churn for the company, not the 7.5% an average of the two rates suggests.

Can Xyzios make my studio’s numbers match?

On its boards, yes, because they follow your rules rather than a report’s setup: you decide what counts as a member and whether a freeze counts as churn, and the boards follow, with paused members counted as their own group. Xyzios works with Mindbody and is an approved Mariana Tek integration, reads your P&L from QuickBooks Online and your bank feed from Finta, and shows a per-location scoreboard with the company total. Your booking platform stays the system of record and nothing is written back to it except what you tap or approve, so the platform’s own reports go on counting their own way.

Try it on your own numbers

Every board in this piece is a screen in the product.

Shown here on demo data. Connect Mindbody or Mariana Tek and it fills with yours. The first month is $99: the whole OS, every board, hands-on onboarding.

No card today · billing starts when you're connected and say go

Every number, one screen. The studio grows.

Free templates

Nine studio templates,
free to your inbox.

Two policies, notes for members and leads, a price increase letter, and four sheets for the desk and the numbers, each cut down to the part you copy. After that, the occasional studio note. No spam, no drip campaign, unsubscribe any time.

Written by the people who build Xyzios — not a content farm. What each template is for →