Entry 003 — how it works
One scan, three things happen
A check-in, end to end.
This is a genuine sequence — each step depends on the one before it, which is why
it is numbered.
Scan the code at the desk
The gym's screen shows a code that changes every 60 seconds. Scan it, or type
it if the basement has no light and the camera gives up — the manual path is
not a fallback we tacked on, it is a first-class route.
Credits come off your balance
One credit at a budget gym, two at an AC mid-range gym. The cost is shown
before you scan, never after — nobody should be surprised by a two-credit
deduction.
The gym is credited, same second
₹49 per credit lands on the gym's statement the moment the check-in is
verified. They see it that day and are paid on the 5th of the next month,
itemised line by line.
Entry 004 — the credit system
What a visit costs
Two tiers. No fine print.
Credits are the only currency in the product. There is no separate wallet, no
surge pricing, and no per-gym rate card you have to memorise.
Budget gym
Free weights, cardio, the essentials. The backbone of the network.
1 creditgym earns ₹49
AC mid-range gym
Air-conditioned, better equipment, usually a trainer on the floor.
2 creditsgym earns ₹98
Member pays
₹899
Starter pass · 10 credits · 30 days
──▶
Gyms are paid
₹49 per credit
Every verified visit · monthly on the 5th
Entry 005 — plans
Launch pricing · first 1,000 members
Pick a rung. Move any time.
Every plan is 30 days and renews only if you let it. Credits expire with the
period — the wallet warns you before they do.
Lite
₹999
₹499 / month
5 credits
Your home city
Starter
₹1,799
₹899 / month
10 credits
Your home city
Growth
₹2,999
₹1,499 / month
18 credits
Home city + 1 more
Pro
₹4,199
₹2,100 / month
26 credits
Every CityGym city
Growth and Pro are shown because the multi-city ladder is real and priced. Their
scope switches on as we open the second city — we would rather show you the rung
than pretend it does not exist.
Entry 006 — trust
Nine gates, in a frozen order
Every check-in is checked.
In the same order. Every time.
A shared pass only works if it cannot be shared. These run on the server, in this
exact sequence, and the order is deliberate — it decides which reason you are
given when two are true at once.
01Fresh code
The desk code is under 60 seconds old
stale_code
02Gym is active
A live partner, not suspended or pending
gym_inactive
03Gym is open
Inside posted hours, in IST
gym_closed
04Your phone
The pass is bound to one device at a time
device_mismatch
05Plan is live
An active subscription, not lapsed
subscription_inactive
06Three-hour gap
One check-in per person per three hours, anywhere
cooldown_3h
07Monthly cap
Five visits per gym per calendar month
cap_reached
08City scope
The gym is inside your plan's cities
city_scope
09Enough credits
Checked last, so topping up would actually let you in
insufficient_credits
If a gate says no, no credit was deducted.
Every refusal screen says that sentence, and the server states it on the wire as
well. Credits are checked last on purpose: telling someone to top up and
then, after they have paid, that the gym was never in their plan is a
refund-generating bug, not a rule.
Entry 007 — for gym owners
The other side of the ledger
Fill the empty hours.
Get paid for every one.
You keep your own members, your own pricing and your own floor. CityGym sends you
people during the hours you were paying for anyway — and pays you per verified
visit, not per promise.
₹49
Per credit
₹49 a budget visit, ₹98 an AC mid-range one. Set per gym, never silently changed.
5th
Paid monthly
One transfer on the 5th, itemised by check-in so you can audit every rupee.
48h
Dispute window
Something looks wrong on a statement? Raise it in-app and a human answers.
₹0
To join
No listing fee, no hardware, no exclusivity. A tablet at the desk is enough.
The cap protects you too
Five visits per member per month means nobody can use a ₹899 pass as an
unlimited membership at your gym. The economics stay yours.
Staff see names, never money
Desk staff verify check-ins and nothing else. Earnings, statements and bank
details are the owner's view alone — enforced on the server, not just hidden
in the app.
Entry 008 — coverage
Where the pass works
One city, properly.
We would rather have real depth in Bengaluru than a thin listing in twelve cities.
The next two are already priced into the ladder.
BengaluruLive
MysuruOpening soon
HubballiOpening soon