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.
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.
| Source | The question it answers | March 31 | Gap to 246 | What moves it |
|---|---|---|---|---|
| Member report | who holds a current membership pass today | 266 | +20 | comps +5, staff +7, intro offers +12, paused −4 |
| Billing list | who will be charged on April 1 | 230 | −16 | paid in full −12, paused −4 |
| P&L ÷ $169 | what March's dues came to, set on March 1 | 240 | −6 | joined in March −18, canceled in March +12 |
| Sam's spreadsheet | what was counted on Sunday | 249 | +3 | pack regulars +7, entered twice +2, paused −4, joined since Sunday −2 |
| The rule sheet | who counts, in writing | 246 | none | 242 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.
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.
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.
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.
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.
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.
| Decision | Alturra's rule | What it moved on March 31 |
|---|---|---|
| Who is a member | ||
| Member | a current membership on the day you count, paid monthly or in full for a term | the base: 242 active, 4 paused |
| Freeze | a pause, not a loss, until day 60; counted as paused | 4 paused, off three of the four sources |
| Paid-in-full | a member all term; cannot leave mid-term | 12 members, off the billing list |
| Plan switch | neither a cancellation nor a new join | 7 in March: moved the dues, not the count |
| Class pack | customers, not members, in a column of their own | 7 pack regulars on the sheet |
| Comp | not a member; a comp ends when the studio ends it | 5 on the member report |
| Staff account | out of everything but class capacity | 7 on the member report |
| Intro offer | a trial; enters as new when she joins | 12 on the member report |
| Which day a number belongs to | ||
| Count date | the close of the first and last day of every month | 2 joiners missing from Sunday's sheet |
| Sale date | the day the money was taken, in the studio's own time zone | decides the month of a late-night sale |
| Cancellation | the day it takes effect, not the day she asked | decides who is a member at month-end |
| How to count | ||
| Heads and money | people from a list of people, dollars from the books; never divide one to get the other | the P&L's 240, a month early |
| One person | one record, matched on the client ID, never the name | 2 people counted twice on the sheet |
| Home site | one home site per member, by a written rule, never switched | one 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:
- 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.
- Write the rule sheet, one line per row of the table above, and date it.
- Count once under the rules, with paused members in their own column. That count is the answer.
- 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:
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.