21 September 2026 · 8 min read
From Free Runs to a ₹10,000 Event: How I Monetised a Run Club


It is 11:36 PM on September 16th and I have never had a cup of coffee in my life. So when people ask what fuelled the two nights that built the Verve Run Club website, the honest answer is a stubborn keyboard, a dead-simple idea and a deep personal grudge against spreadsheets.
By the end of night two, the club had a site with login, online payments, QR tickets, a gate scanner and live results. I was brought in as a consultant to help Verve plan and monetise, and I built the whole engine behind it myself. But this is not a post about code. It is about what happens when a free community run becomes a paid one: the roughly ₹2,000 a free run used to cost the club, the roughly ₹10,000 the first paid run brought in, and the ordinary-looking gaps in between that made the change possible. (The polish, the gallery and the animations took a few more days. The core that made the money took two nights.)
The run that cost ₹2,000 and earned nothing
Every earlier Verve run was free. Free is a lovely thing to give a community, and it costs real money to give. Refreshments, permissions, setup and printing came to about ₹2,000 a run, and every rupee came out of the club's pocket. Runs ran on a sign-up form, a paper list at the start line, a volunteer squinting at it at 6 AM and a stopwatch that belonged to whoever remembered to bring one. Nothing came in. Nothing could be proven either: how many people showed up, how fast they ran, how many came back.
Free is not the same as cheap. Every free event has a cost, and somebody absorbs it, usually the people running it.
Free meant the hours were invisible
Every task a human did by hand was a place for time and money to leak. Someone typed names into a sheet. Someone stood at the gate with a paper list. Someone copied finish times into another sheet after the run and argued about ties. I replaced all of it with one flow: sign in with Google, pay, receive a welcome email and a QR ticket, get scanned at the gate with a phone, and let the server start and stop your clock. The result is a leaderboard that builds itself, ranked by distance, then pace, with ties handled fairly.

Free meant a sign-up was only a maybe
When a run costs nothing, a sign-up is a maybe. A ₹129 ticket turns the maybe into a plan. Of the 56 people who paid, 48 walked through the gate and 44 ran, a turnout no free sign-up sheet had ever given us a way to measure. But taking money online has its own risk: the money leaves the customer, a browser tab closes, and a paid runner has no ticket. So a payment webhook creates the ticket on the server, and a reconciliation tool double-checks that every rupee that came in has a ticket attached. Registration closes on its own the moment a run starts. Result on race day: 56 registrations, 56 paid, zero mysteries.
Free meant nothing to show anyone
A free run is easy to skip and easy to forget. So the event had to look like an event before anyone stepped on the turf. A real poster. A link that unfurls with the right title and picture when it is shared in a group chat. A countdown to the flag-off. A community feed with the plan for the day. People do not share a Google Form. They share a poster that looks like something worth turning up for.

Then the finish line stopped being the finish line. After the 3 km run at Campus 25, runners walked over to AV Sports Arena for football, cricket and pickleball. Results went live on a leaderboard the same morning, and a photo gallery followed within two days. Every one of those is something a sponsor can point at and say: that is what my money bought.

Free meant the club paid every time
The quietest cost comes last. Refreshments, permissions, setup and printing came to about ₹2,000 for every free run, and every rupee came out of the club's pocket with nothing coming back. The paid run cost more to put on, about ₹5,100 with 56 runners and the after-run sports, but ₹129 tickets and partner support brought in about ₹10,000. A run that used to eat the club's money now pays for itself, and for the next one.
Do the maths yourself
Here are the assumptions behind my numbers, out in the open. Change the ticket price, the partner income or the cost of a free run, and watch both runs recalculate. Nothing is hidden: a free run costs about ₹2,000 and brings in nothing. The paid Verve run has a fixed cost of ₹4,400 plus ₹10 a head plus a 2.36% payment fee.
Play with the numbers, run the maths yourself
Free run
- Money in
- ₹0
- Money out
- ₹2,000
- Result
- -₹2,000
loss
Paid Verve run
- Money in
- ₹10,000
- Money out
- ₹5,130
- Result
- ₹4,870
profit
Free run: refreshments, permissions, setup and printing paid from the club's pocket, nothing coming in. Paid Verve run: pay first, QR ticket, scan at the gate, live results that a partner can actually see.
The numbers, side by side
| Free run | Paid Verve run | |
|---|---|---|
| Ticket price | ₹0 | ₹129 |
| Runners who paid | 0 | 56 |
| Ticket revenue | ₹0 | ₹7,224 |
| Partner income | ₹0 | ₹2,776 |
| Total money in | ₹0 | ₹10,000 |
| Total cost | ₹2,000 | ₹5,130 |
| Result | -₹2,000 | +₹4,870 |
Look at the partner income row. Nobody sponsors a run whose headcount is a guess. Once every ticket was a scannable QR code and every finisher had a timed result, the numbers were no longer a claim, they were proof. That single row is worth more than the ticket price ever was.
Three days, replayed
Everything above happened fast. Drag through the real timeline, from the first account created at 11:36 PM to the last runner across the line. The counters are pulled from the live database.
Drag through the three days that made the run
Sep 16, 11:36 PM
Night one: the first account
Supabase goes live. Mock data out, real sign-ups in. No tickets, no payments, just a login that works.
1
Accounts
0
Paid tickets
0
Runners
Where the profit actually came from
145 people created accounts. 56 paid. 48 came to the gate and 44 ran. The percentages are the story: 39% of the people who signed up bought a ticket, 86% of ticket holders reached the gate, and everyone who started, finished. A paid ticket is a promise the person keeps, and the QR code makes it visible.
From a curious tap to a finish line
- Created an account145
- Paid for a ticket5639% of the step above
- Scanned in at the gate4886% of the step above
- Started and finished4492% of the step above
A free sign-up is a maybe. A paid ticket is a QR code, and a QR code is a person at the gate, so 79% of ticket holders ran and every one of them had paid.
The team that made it real
No website scans a QR code by itself. Someone held the phone at the gate, someone poured water, someone shouted times, someone took the photos you can see in this post, and someone stayed until the last pickleball rally ended. I came in as a consultant, helped the club plan and monetise, and built the engine in two nights. The team turned it into a morning people wanted to come back to.

That is the part software cannot fake. My job was to remove every excuse for the day to go wrong so that the team could spend its energy on the experience. When the boring parts run themselves, people show up for the good parts.
What I would tell any club, shop or side project
- Free is not free. Somebody absorbs the cost, and if you cannot name who, it is you.
- Price for commitment, not only revenue. ₹129 was low enough to say yes to and high enough to turn up for.
- Make your numbers provable. Sponsors, partners and even customers trust a scanned, timestamped record more than a confident claim.
- Sell the experience, not the transaction. A good poster, a clean link preview and a gallery cost little and keep the next run full.
- Automate the boring, not the human. The crew is the product. Software just clears the path.
Want this kind of system for your own business?
If you run a club, a community or a small business and something that should be earning is running free or by hand, I plan and build the whole engine: pricing, payments, tickets, dashboards. Verve is the proof. A run that cost about ₹2,000 to give away became an event that brought in about ₹10,000. You can find me at smit.website.