Lets get paid - adding a Paid plan
Free plans are cool and all, but lets also add a paid plan so we have business, and not just a hobby
Note: I’ve republished this popular article from last year, as many of you have not seen it yet.
A short history
I made a decision to remove resistance when it came to the first release of my cleaning schedule automator SaaS product at RosterBuddy. I wanted to get a bunch of initial users trying it out, exercising the assumptions I made, and giving feedback. I made login via Social means [Facebook, Google] and made the app Free.
Those early decisions have paid off, and I have so far over 90 people who have signed up & a subset of that group are actively using the app to manage their weekly household chores.
So.. let’s move into the next phase. Show. Me. The. Money.
I mean, this project needs to be a win win, in that the customers need to have their lives made easier, and I need to cover my costs, and ideally, earn enough so I can reduce the hours of my day job, and reinvest that time back into this and other projects.
The plans
My initial plan name was ‘Free’ and it was the plan that every user had applied to their accounts at signup time. No limits were on this plan, and I need to retain this for now, with the aim that I can at some stage encourage these early customers to a higher tier, but with an incentive/reward, in particular Stripe coupons they can use for some initial free months of a paid plan.
This legacy plan still exists in my db, assigned to each current user, but is no longer selectable by new customers. I’m also not adding any new features to it.
I’ve added two new plans, and called these Roommate and Team. These are currently on the pricing page as below:
As you can see, I have a new free plan [ Roommate] suitable for 2 people, with a limit on the number of tasks/chores that will be included in each weeks roster. I’ll likely let people ‘add’ more to their main list, but only include up to 7 when each roster is generated. I’ll also remind people in the UI that not all of their extra tasks are included each week, which might incentivise people to upgrade.
The ‘Team’ plan is where the action will be happening. My experiment, is that there are many households in the world which have more than 2 people sharing the cleaning load, and may consider paying this small amount to not have to do the ‘owning’ of the problem. The app will assign a different, balanced, mixture of chores each week, and do the reminding if any chores are hanging around undone for too long.
The Data
Here is how I have implemented this in the Database:
And here is the data I have populated for these plans:
You may have noticed that even though the paid and free [legacy] plans both have ‘unlimited’ chores that can be auto-added to each weeks roster, I’ve implemented a pragmatic limit of 1000 just to safeguard compute resources. It’s super unlikely anyone will type in this many tasks, but you never know, & I can change this if a customer requests it.
The Limits
I think the main work of having more than one plan is actually the constraints. By which I mean, it’s relatively easy to set up a multi tenanted SaaS product that has no limits in place, everyone can access all features all the time.. it’s logically uncomplicated.
The work comes in when we want only a subset of people to access certain things, and be prevented from accessing paid features, based on some aspect of their account/role/group/plan etc.