
A fitness app with real membership behind it costs $50,400 to $126,000 for phase one. That is 1,260 hours at a rate band of $40 to $100, or about $81,900 at a $65 blend. Move the scope and the honest span is 1,060 hours at every module's minimum to 1,860 at every maximum.
Seven modules make up that 1,260: membership and entitlement at 200 hours, recurring billing and dunning at 210, scheduling and credits at 190, access control at 130, the member app at 190, integrations at 200, and retention analytics at 140. Each sits inside a published range, so you can argue with any line and watch the total move.
The number most quotes give you is for the wrong product. Ask for a fitness app and you will be quoted a workout tracker: exercise library, timer, progress charts, maybe a video player. That build is real and it is cheap, $15,000 to $30,000, because nothing in it has to be correct. A rep count that drifts costs nobody anything.
What you are actually buying, if you run gyms or studios, is a system that decides whether a human being gets through a turnstile at 06:14 on a Tuesday, and whether their card should have been charged last Friday. Those two questions carry money and law. They are where the hours go.
Here is the ordinary failure that explains the gap. A member freezes their membership for January. Your billing runs on the 1st. Your access control syncs nightly from a different table. If the freeze wrote to the billing schedule but not to the entitlement state, you charge a frozen member and let them in — and you will discover both from the same angry email. Getting that right is not a feature. It is the data model.
A subscription has two states and a fitness membership has eleven. Active, pending start, frozen by member, frozen by operator, in arrears, suspended for arrears, cancelled with notice running, cancelled immediately, expired, transferred, and upgraded mid-term. Each transition has rules about what happens to money already taken and access already granted.
Treat it as a subscription with a status column and the bugs arrive in a predictable order. Frozen members keep their door access. Members who cancel on day 3 of a 30-day notice lose access on day 3 instead of day 30. An upgrade mid-month either double-charges or charges nothing, depending on which way your proration rounds.
The fix is boring and it is why the module is 180 to 300 hours. Membership becomes an append-only history of state changes with effective dates, and every other part of the system asks it a question rather than storing its own copy of the answer. Was this member entitled to enter at this timestamp? Was this member billable on this date? Both questions get answered from the same history.
That history also pays you back later. Retention analytics, the 120-to-220-hour module at the end, is mostly free once the state history exists and nearly impossible to retrofit when it does not. You cannot compute why members left in month four if you only ever stored what they are today.
Recurring billing is the single most expensive module at 180 to 320 hours, and the reason is that the rules differ by market in ways that change the build rather than the copy.
In India, the Reserve Bank of India's Digital Payments E-mandate Framework, issued 21 April 2026 with immediate effect, requires a pre-transaction notification to reach the customer at least 24 hours before the debit, carrying the merchant name, the amount, the date or time of debit, the mandate reference number and the reason. Registering a mandate needs additional factor authentication. Recurring transactions up to ₹15,000 may then run without it. The member must be able to opt out of a single debit, or of the whole mandate, using authentication.
Read that as engineering and you get a notification scheduler with its own retry and audit trail, a mandate registration flow with an authentication step, and a per-debit opt-out that has to reach your dunning logic before it runs. That is not a payment gateway integration. The gateway is a fortnight of the 320.
In the United Kingdom the pressure sits on cancellation. The subscription contracts regime in Part 4 Chapter 2 of the Digital Markets, Competition and Consumers Act 2024 comes into force on 1 January 2027, with the Consumer Subscription Contracts (Cancellation and Information) Regulations 2026 supplying the detail. It brings a 14-day initial cooling-off period, reminder notices before renewal, online cancellation wherever sign-up was online, and a further 14-day cooling-off window at certain renewals: the first after a free or discounted period, and renewals on a cycle of a year or more. The sharp edge is the remedy. Failing to send a reminder notice is a listed omission, and the presumption is then that the consumer stops being liable for payments from the date of the breach until the contract is cancelled, which in practice means refunding them.
A missed reminder email is therefore not a support ticket. It is a refund liability that compounds monthly, and it means your reminder scheduler needs the same delivery evidence your invoices have.
In the United States, the Federal Trade Commission's revised Negative Option Rule — the click-to-cancel rule — was vacated in full by the Eighth Circuit on 8 July 2025 in Custom Communications, Inc. v. FTC, six days before its deferred compliance date of 14 July 2025. Plenty of operators had already built for it. The Commission formally restored the pre-2024 rule on 12 February 2026 and published an advance notice of proposed rulemaking on 13 March 2026 to begin again. What applies in the meantime is the Restore Online Shoppers' Confidence Act, section 5 of the FTC Act, and the individual state auto-renewal statutes.
Build the cancellation path as if the rule exists. It costs little more than the alternative, several states already require most of it, and the version that was vacated is a reasonable guess at the version that returns.
A failed payment is not an error. It is the start of a process that runs for weeks and touches every other module.
Here is what has to happen when a member's card declines on the 1st. You retry, but not immediately and not at random — issuer decline codes mean different things, and a retry against a hard decline burns a gateway fee and your merchant reputation for nothing. You notify, in a channel the member actually reads, with a payment link that still works three days later. You decide what their entitlement is while this runs: full access, or access with a banner, or no access at all. Most operators want full access for a week, because locking out a member whose card expired is how you lose a member who was going to pay.
Then you escalate. Day 3, day 7, day 14, each with a different message and possibly a different channel. At some point the membership moves to suspended, which has to write to the entitlement history so the door knows. At some later point it moves to cancelled, which may trigger a notice period that the member can still interrupt by paying.

Every rung on that ladder is a configuration an operator will want to change, and each one writes to the same membership state history that access control reads. That is why billing and entitlement cannot be built by two people who are not talking to each other.
The arrears recovery rate is also the one number that moves revenue without selling anything. An operator running a three-step ladder with a working payment link recovers materially more than one that sends a single email and gives up, and the difference lands in the same month. We have seen this justify the module on its own.
Build it as data, not as code. The ladder — steps, delays, channels, entitlement at each step, what the member can do to stop it — belongs in a table your operations team can edit. Hard-code it and every policy change is a deployment.
Class booking looks like a calendar. It behaves like an airline seat map with credits attached, which is why the module runs 160 to 280 hours.
The middle of the problem is easy and the edges are not. A member books a 07:00 spin class with 18 bikes. Two bikes are out for maintenance. Three members are on a waitlist. One cancels 40 minutes before, inside your late-cancel window, so they lose a credit and the first waitlisted member gains a spot — but only if they can be notified and can still arrive.
Every one of those is a rule your operator will want to change per site, per class type, and per membership tier. Late-cancel windows, no-show penalties, how many credits a tier carries, whether credits roll over, whether a waitlist promotion resets the late-cancel clock. Hard-code them and you will be back in the code every month.
The teams that get this right build a small rules layer early and accept that it looks over-engineered for the first studio. It stops looking over-engineered at the fourth.
The software for door access is 100 to 180 hours. The hardware is not in that number and is frequently larger. Turnstiles, readers, controllers and their installation are bought, not built, and a multi-site operator can spend more on them than on the entire software phase one.
What the software has to do is narrow and unforgiving. It answers one question — is this credential entitled to enter this door right now — and it has to answer when the internet is down. Controllers cache entitlements locally and reconcile later, which means your entitlement model needs a shape that survives being copied to a device and going stale for an hour.
That is the reason access control cannot be bolted on at the end. It constrains the membership model you chose in week two.
Tailgating is the operational problem the software is asked to solve and mostly cannot. One member badges in and two people walk through. Operators ask for anti-passback, which refuses a credential that enters twice without an exit between, and it works until a member leaves through a fire door and cannot get back in. Camera-based counting is the alternative and it is a hardware decision with a hardware budget.
Decide early how much of this you actually want. A single studio with staffed reception needs almost none of it. An unstaffed 24-hour site needs all of it, plus a way for a member locked out at 02:00 to reach a human, which is a support process before it is a feature.
Apple Health and Health Connect both read as a line item on a feature list and behave as a sustained integration cost. The industry page carries them at 80 hours and up, deliberately outside the 1,260.
Permission is the part that surprises people. A member grants access, revokes it from the operating system, and your app keeps showing their old step count because nothing told you. Health data also arrives retroactively and out of order, so any streak, challenge or reward computed from it has to be recomputable rather than incremented.
If wearable challenges are the reason your app exists, that is fine, and the number goes up. What you should not do is accept a quote where "wearable integration" is one bullet among twelve.
Every competitor publishes a total with no hours behind it. Here are the hours, so you can argue with any line.
Module | Hours |
Membership, contract and entitlement model | 180 to 300 |
Recurring billing, mandates and the dunning ladder | 180 to 320 |
Scheduling, capacity, credits and waitlists | 160 to 280 |
Access control and check in | 100 to 180 |
Member app and self service | 160 to 280 |
Integrations: payments, wearables, hardware, accounting | 160 to 280 |
Retention analytics and the state history | 120 to 220 |
The worked example takes a mid-point from each: 200 plus 210 plus 190 plus 130 plus 190 plus 200 plus 140, which is 1,260 hours. At $40 per hour that is $50,400. At $100 it is $126,000. At a $65 blend, about $81,900.
Sitting deliberately outside that number, each with its own range: quality assurance at 20 to 25 percent of build, environments and deployment at 80 to 160 hours, security review and penetration testing at 60 to 120, franchisor reporting and royalty calculation at 120 to 240, and the wearable and Health Connect work above.
The scope priced here is a multi-site operator keeping its existing member management platform and taking entitlement, billing policy and scheduling in house. A single studio starting from nothing sits lower. A franchisor with royalty calculation sits higher.
Sites and tiers move it more than features do. One studio with two membership types is a different system from eleven sites where each has its own class schedule, local pricing and a franchise agreement governing what the operator may change. The code is similar. The configuration surface, the testing matrix and the migration are not.
Second is how much history you bring. Importing two years of memberships, frozen periods, outstanding arrears and credit balances from an incumbent platform is routinely a third of the hours nobody quoted, because the incumbent's export will not contain the state transitions your model needs and you will be reconstructing them from invoices.
Third is payments. One market with one processor is a fortnight. Three markets with local mandate rules, as the billing section shows, is most of a module on its own.
What barely moves it: the visual design, the number of screens, and whether you build native or cross-platform. Those are the three things founders ask about first and they sit inside normal variance.
For most operators the right answer is not a full build.
Buy, if your operation fits a platform's assumptions. Mindbody, Glofox, Virtuagym and their competitors are cheaper than any build and they work. The question is whether your membership rules fit theirs. If you want a corporate tier billed quarterly to an employer with per-employee entitlement that pauses on parental leave, you will not configure that; you will fight it.
Build around the platform, which is where most of our fitness work actually sits. Keep the incumbent for member records and payments, and build the layer the platform cannot express: entitlement, scheduling policy, access decisions, the analytics. That is the scope the 1,260 hours above prices. It is smaller than a full build and it does not require migrating everything on day one.
Build fully, when the platform is the constraint on the business model. Franchisors are the clearest case, because royalty calculation depends on revenue recognition rules the platform does not share with you.
Three failures account for most of the overruns we see, and none is technical.
The first is discovering the billing rules after the model is built. Mandate registration, pre-debit notification and reminder-before-renewal all want hooks in the same place, and adding them to a finished billing module costs more than the module.
The second is treating access control as a phase two. It is a consumer of the entitlement model, so deferring it does not defer the design decision — it just means you make that decision without knowing the constraint.
The third is the migration. Operators plan the build and not the move, then find that their incumbent exports a current-state CSV when the new system needs history. The fix is cheap if you ask for the export in week one and expensive if you ask in week twenty.
The cost question has a short answer and it is the arithmetic above. The longer answer is that the number is set in the first fortnight, by what you decide a membership is, and almost everything after that is execution against a decision you have already made.
A fitness app with real membership behind it costs $50,400 to $126,000 for phase one. That is a 1,260-hour build at a $40 to $100 hourly band, or about $81,900 at a $65 blended rate. The span across the seven modules runs from 1,060 hours at every minimum to 1,860 at every maximum. A simple workout tracker with no membership, billing or access control is a different product and costs $15,000 to $30,000, because nothing in it has to be financially correct.
Because two of its answers carry money and law. A workout tracker that miscounts a rep costs nobody anything. A membership system decides whether someone gets through a door and whether their card should have been charged, and both have to be right. That forces an append-only membership state history, a billing module that complies with mandate and cancellation rules per market, and an entitlement model that still works when a door controller is offline. Those three are roughly half the build.
Seven. Membership, contract and entitlement at 180 to 300 hours. Recurring billing, mandates and the dunning ladder at 180 to 320. Scheduling, capacity, credits and waitlists at 160 to 280. Access control and check-in at 100 to 180. The member app and self-service at 160 to 280. Integrations covering payments, wearables, hardware and accounting at 160 to 280. Retention analytics and the state history at 120 to 220.
Five things routinely sit outside the build number. Quality assurance at 20 to 25 percent of build. Environments and deployment at 80 to 160 hours. Security review and penetration testing at 60 to 120. Franchisor reporting and royalty calculation at 120 to 240. Wearable and Health Connect integration from 80 hours. Door hardware — turnstiles, readers and controllers — is bought rather than built and for a multi-site operator can exceed the software cost.
They change the build, not the copy. India's RBI Digital Payments E-mandate Framework of 21 April 2026 requires a pre-transaction notification at least 24 hours before each debit carrying merchant name, amount, date, mandate reference and reason, with authentication to register the mandate and recurring debits up to ₹15,000 permitted without it. The UK's regime under the Digital Markets, Competition and Consumers Act 2024 comes into force on 1 January 2027, adding cooling-off periods and reminder notices, where failing to send a reminder is a listed omission and the presumption is that the consumer stops being liable for payments from the date of the breach. Each needs schedulers, audit trails and evidence of delivery.
Buy if your membership rules fit the platform's assumptions, because any platform is cheaper than any build. Build around the platform if the rules do not fit but the member records do — keep the incumbent for members and payments, and build entitlement, scheduling policy and access decisions on top. That middle path is what the 1,260-hour figure prices. Build fully when the platform constrains the business model itself, which in practice means franchisors needing royalty calculation.
A 1,260-hour phase one runs about 4 to 6 months with a team of 4 to 5 people delivering 600 to 700 useful hours a month. The limit is rarely engineering capacity. It is the decisions: what a membership is, which states it moves between, and what each transition does to money already taken. Teams that settle those in the first fortnight finish near the estimate, and teams that settle them in month three do not.

Vikas has around fifteen years of experience building software and now builds generative AI systems at Zyneto. His work covers retrieval augmented generation, agentic AI, knowledge graphs, AI memory, and the evaluation and guardrails that decide whether any of it is safe to put in front of customers. He has shipped enterprise copilots, document AI, chatbots and predictive analytics for e-commerce, fintech and marketing teams, and works day to day in Python, JavaScript and SQL. He follows multimodal models, business process automation and enterprise AI security closely, and mentors engineers moving into AI. He writes about architecture, inference cost and the failure modes that only show up at production scale.
Share your details and we will talk soon.
Be the first to access expert strategies, actionable tips, and the trends actually shaping the digital world. No fluff - just practical insights delivered straight to your inbox.
Dive into our blog and stay ahead of the curve with expert perspectives, future-ready trends, and tech tips written for decision-makers and doers alike.