Repple
Repple Studio · setting up

The first week,
in order.

Every screen in Studio reads rows somebody put there. So the useful question on day one is not what the console can do — it is what has to exist before each figure stops being a dash. This page is that sequence, with the dependencies said out loud.

import — payments.csv Illustrative

Dry run. Nothing has been written to your gym.

Rows read118ready
Amount has four decimal placesline 41handed back
No member name or emailline 63handed back
Amount is negativeline 92refunds not imported
Date orderday-month-yearread from the file

118 of 121 rows ready · 3 need attention · ignoring 2 unrecognised columns

The sequence

Eight steps, and each one
turns something on.

Nothing here is a wizard you have to finish in one sitting. It is the order the parts depend on each other in — do them out of order and the screens simply stay honest about what they are missing.

  1. 1

    Create one account, and get a gym with it

    Signing up makes you the owner of your own empty gym. Nobody grants it to you and there is nothing to apply for — the account and the gym are created together, and you are the only person in it. It starts out named after you, which is a placeholder rather than a decision; rename it before you invite anybody.

  2. 2

    Open the console in a browser

    Studio is a phone app for the floor and a browser console for the desk, and they are not two products — both call the same functions over the same rows through the same permissions. The wide tables, the month reconciliations and the import are keyboard work, so start at the desk. Open a page your role does not cover and it says so plainly instead of showing you an empty screen to interpret.

  3. 3

    Put the price book in

    What the gym sells: a name, a price, and whether it recurs monthly, yearly or is a one-off such as a day pass or a joining fee. Type them in on the Money screen, or paste your existing price list into Import. Prices are held as whole minor units — an integer number of fils or cents, never a decimal — because a float near a ledger is a rounding error in a spreadsheet and a dispute in a gym.

  4. 4

    Bring the payments across

    Paste the spreadsheet and read the dry run before anything is written. A payment whose member cannot be matched is still recorded — unattributed, which is true — rather than dropped, which loses money the gym actually took. What it refuses, it hands back with the reason attached.

  5. 5

    Invite your members; do not import them

    A membership has to point at a real account, and an account is something a person accepts. So members arrive as invitations addressed to an email, which they redeem in their own app. Run the member half of the import anyway: it validates and cleans the file — bad dates, unreadable amounts, duplicate addresses, statuses nobody recognises — and that is most of the work.

  6. 6

    Invite your trainers

    The same shape: an invitation to an email address, accepted in the coach app, which attaches that trainer to your gym. From then on their clients, their rota and the sessions they deliver sit inside your gym's records rather than in a calendar you cannot see.

  7. 7

    Put the week on the board

    Classes and weekly series, with the dates you skip. One-to-ones land on the same board rather than in a separate calendar, because two calendars cannot answer “is the floor covered at six?”. Record what each room and its equipment can take while you are there — a fill rate is a fraction, and without a capacity there is no denominator to divide by.

  8. 8

    Start the door log, and start marking outcomes

    These are the two habits everything else rests on. The door records entries at the desk whether or not anything was booked; without it, a member who moved from the 6am class to the gym floor is indistinguishable from one who stopped coming. And somebody — the trainer in the coach app, or you in the console — has to say what happened to each one-to-one, because the alternative is inferring delivery from the clock and paying for no-shows.

Dependencies

Every figure names
what it is waiting for.

Studio will not estimate its way past a missing input. Where the record is thin you get a dash and a sentence saying which record is thin — which is a smaller problem than a confident number you cannot source.

Setup

What has to exist before each figure does

YOU RECORD STUDIO CAN THEN SHOW A price book, and who is on it Recurring revenue Payments, typed in or imported Money taken, last 30 days A capacity against each class Class fill rate Check-outs, not just check-ins Average time in the building A session fee, and every outcome A payroll total that is final The door log running Attendance beyond bookings
Nothing on the right is estimated from a partial left. The most common surprise is the last row: a gym that counts only class bookings concludes that members are leaving, when what actually happened is that they moved to the floor.
FigureWhat it needsWhat you see until then
Recurring revenue Active memberships sitting on a plan that has a price. A dash, and which memberships have no priced plan behind them.
Money taken Payments recorded at the desk or brought in from a spreadsheet. A dash. An empty payment record is not the same fact as a month of nothing, and it is not drawn as one.
Class fill A capacity recorded against the classes being measured. A dash and “no capacity recorded”, rather than a percentage of an invented denominator.
Average stay Exits logged as well as entries. A dash. Entries alone give you a visit count, which is a different question.
Payroll total A session fee set for the gym, and an outcome marked on every session in the period. A figure that refuses to call itself final, and a count of how many sessions are still unmarked.
Retention The door log running alongside the class bookings. A reading taken from bookings only, with a note when the door log and the class record disagree.
Cash position An accounting connection, which is not built. A permanent dash with “connect accounting” under it. It is on the roadmap, not in the product.
Lifetime value A measured membership lifespan, which needs time nobody has had yet. Nothing. Studio does not print an invented multiplier and call it analysis.

A read that fails is also kept distinct from a record that is empty. Each department on the overview is loaded on its own, so a door log that will not read shows a dash of its own rather than blanking the revenue figure beside it.

Bringing your history in

The refusals are
the feature.

An import that silently misreads 03/04/2026 does not fail loudly. It produces a year of plausible, wrong history that nobody notices until a renewal date is missed. So the importer never guesses at an ambiguous value — it hands the row back with a reason and lets somebody decide.

  • It reads the whole date column first. One unambiguous value settles the file: if any row says 25/12, every 03/04 in it can be read with confidence and you are never asked. A file containing both 25/12 and 12/25 is internally inconsistent, and that is said rather than resolved.
  • Four decimal places is not money. A price column carrying four decimals is a unit rate or an exchange rate. Rounding it silently turns a data-shape problem into a money problem, so it is handed back instead.
  • A quarterly plan has nowhere truthful to go. Billing periods are monthly, yearly or one-off. Mapping a quarterly plan onto monthly divides your recurring revenue by three; onto yearly multiplies it by four. Those rows are refused so a person decides.
  • A blank price is an unfinished row. Not a free plan. A deliberate zero is allowed, because a staff or complimentary membership is a real thing a gym sells at nothing on purpose — the distinction is between an absent cell and a typed 0.
  • An unrecognised status is refused, not defaulted. A cancelled member imported as active gets chased for money. The same rule retires a plan rather than putting it back on sale.
  • Columns it does not recognise are reported, never dropped. The summary counts them, so you find out on the preview screen rather than three months later when something you needed turns out never to have arrived.

Plans land in full

A price book holds nothing but the gym and the plan itself — no reference to a person — so importing one is a plain write.

Payments are kept, matched or not

A payment can be recorded with no member attached. Money the gym took is kept even when the name in the file matches nobody yet.

Members are checked, not created

A membership needs a real account behind it. The preview still runs, because validating the file is worth having before the invitations go out.

Nothing writes until you press it

The preview is a dry run in full. The one sentence this is built never to produce is “12 plans imported” when five of them silently failed.

Where the work happens

Seven pages, and the
first job on each.

Console pageWhat you do there first
ImportPaste the price list, read the dry run, then do the same with the payments.
MoneyCheck the imported price book, open memberships against it, and record what comes in at the desk.
TimetableBuild the week — classes, weekly series and one-to-ones on one board — with a capacity recorded on each.
DoorStart checking people in and out, and sell or redeem a drop-in, a guest pass or a class pack.
SessionsClear anything sitting unmarked, then run payroll once nothing is outstanding.
MembersOpen one person and see the whole of what the gym knows about them — membership, payments, visits, classes, one-to-ones and passes on one screen.
OverviewNothing, at first. It is the last screen to become useful, because it reads back everything the other six record.

What each page does in full, and who is allowed to open it, is on the Gyms page — alongside the parts of Studio that are not built yet.

The people in it

Your members and coaches
arrive by invitation.

Members

They get an app, not a portal

An invitation goes to an email address and is redeemed in the member's own app, which attaches them to your gym. Their training record belongs to their account rather than to you — the gym half is the membership, the entry barcode, the class schedule and booking a session.

  • Works before they join and after they leave
  • You see membership and attendance, not their set-by-set log
Coaches

Same shape, different app

An invitation to an email, accepted in Repple Coach, attaches that trainer to your gym. Their roster, their availability and the sessions they deliver then sit inside your records instead of a calendar you have to ask about.

  • They mark outcomes; that is what makes payroll countable
  • They see their own clients and rota, not the business
You

Owner of one gym, not of gyms

Your access is scoped to the gym you own rather than to the role of owner. Nobody can move their own profile into your gym or promote themselves inside it — joining happens by invitation, and the database refuses the alternative.

  • Two locations are held as two separate gyms
  • The detail is on Security & data

Straight answers

The questions that come up in the first fortnight.

How long does setting up take?

That depends entirely on the state of your spreadsheet, so no honest number goes here. The parts that are quick are the ones under your control: the price book, the timetable and the account. The part that takes as long as it takes is getting your members to accept an invitation, because that is other people's time rather than yours.

Do we have to import anything to start?

No. You can start recording from today and let the history stay where it is. What you give up is the comparison — a gym with no imported past has no prior year to measure this one against until it has been running Repple for twelve months.

What if the import gets something wrong?

The preview is what stops that: it reports what it would do before it does anything, and only the final press writes. If a run does land badly, the rows are ordinary records in Money and can be corrected there. A partial run says in those words that it only partly landed, and names the lines that did not.

Does every trainer have to use the coach app?

Somebody has to record what happened to each one-to-one — the trainer in Repple Coach, or you in the console. There is no third option, because the alternative is inferring delivery from the clock, which is how a gym ends up paying for sessions nobody turned up to.

Can we try it without moving the whole gym across?

Yes, and it is the sensible order. Create the account, put the price book and one week of the timetable in, and run the door log for a fortnight. That is enough to see whether the attendance picture matches what you thought it was, and nothing is charged while you look.

What does it cost to set up?

Nothing, and nothing is charged for the software during the first release either. There is no price set yet at all — Pricing explains exactly where that stands and how to get a quote.

Is the screen at the top of this page real data?

No, and it says “illustrative” on it. Repple has not launched publicly, so there is no gym to draw from — and we would not publish one if there were. The line numbers and the counts are invented; the refusal reasons beside them are the ones the importer actually gives.

Step one is an account.

It creates your gym with it, and there is nothing to pay. Everything above can wait until you have looked around the console.