Inspired by many other businesses in the WordPress ecosystem that have been sharing their revenue numbers and other details behind their businesses, we’ve decided to post a transparency report of our own. I hope this information will help developers who are interested in transitioning from a consulting business to a products-based business.
We’re also launching our new PMPro Plus level of membership this week via a series of emails. The emails themselves cover the process we’re using to launch the new level; the details in this post will provide some extra context.
Who are we?
First, some information on who “we” are when talking about where this revenue goes. The company behind Paid Memberships Pro is Stranger Studios; and we consist of myself, Jason Coleman, and my wife Kim Coleman. We’ve also had a few part time contractors over the past few years. Most recently we have two, part-time contractors helping us with PMPro support and select development projects: Harsha and Jess. Things change week to week, but the basic time chart looks something like this:
- Jason: 40+ hours per week.
- Kim: 20 hours per week.
- Jess: 10 hours per week.
- Harsha: 10 hours per week.
Top line numbers.
Here is a stacked bar chart showing the total annual revenue for our business. The green / bottom portion is income from PMPro memberships on this site. The blue / top portion is revenue from everything else, which mostly includes billable hours for custom development and consulting projects, but also includes revenue from our “do it for me”, “little help here”, and “dev day” style mini projects.
As a side note, we also excluded about $80,000 in revenue from 2013 that was really just money we invoiced for a partner who was working on a project with us. We weren’t taking any management fee on that work (probably should have been) and didn’t make any profit from it; so we cut it out to keep the chart cleaner.
Also note that the numbers for 2015 are projections based on the assumption that July through December look very similar to January through June. We’re hoping the new membership level and products we’re launching will increase that green bar quite a bit.
From here, I’ll go year by year talking about how the business evolved over time.
This year isn’t depicted on the chart, but it’s the year we built and deployed the first version of Paid Memberships Pro. Originally, we developed the plugin for a group of clients who all needed some form of membership functionality on their WordPress sites. At the time, we had a rather advanced ecommerce plugin that we were using for our own clients, but never had released as an open source project. While we were getting small contracts installing our proprietary ecommerce plugin, we watched as WP Ecommerce entered the WordPress ecosystem and grew into a huge business. More importantly, we noticed that the open source nature of that project had great benefits for the sites running the plugin, as development was shared among the wider community and updates were pushed out on demand through the WordPress.org repository.
We saw the need for a stand alone membership product (vs. a membership as one item in a traditional ecommerce store), and with the help of our clients set out to develop “the community solution” for membership sites running on WordPress.
We agreed with the sentiment at the time that the GPL license was required for any serious WordPress plugin, and so released the plugin with that license ensuring that the code would be free in the “free as in speech” sense. But we also made the plugin free as in $0 free, including the code to integrate with all payment gateways and all addons we would release. We wanted as many people to use the plugin as possible.
We had to manage the impression that our plugin was lower quality that other plugins with price tags, but that has improved over time. I think it would have been very hard for us to get the kind of user numbers we have if our code had been less available. Having all of our code available for free helped to differentiate us from the other options on the market and also encouraged developers to dive into our codebase and get behind us.
The idea was always that if we built something really useful, the business opportunity would present itself later.
In early 2012 we were experimenting with a $10/month support option. A lot of customers liked this plan, but mostly because they could get support for $10 and then cancel at the end of the month… and then sign up again 3 months later to get support for $10 again. Some customers did keep their membership recurring, but just as many would get in touch months later asking “why are you charging me $10 per month” and “can you refund me that money?” At some point we raised the price to $19/month, but really the monthly recurring model didn’t fit and was confusing. The basic idea was that we weren’t delivering extra value every month so it didn’t make sense for our customers to pay every month. Our support customers were getting their support up front and since we didn’t shut down the plugin when their membership expired or even disable updates, there was no incentive to keep a membership active.
In June 2012 we switched to the plan that we’ve had ever since: support for $97/yr. This new plan was simple (one price, non-recurring) and fairly sustainable. We spent an average of 1/2 hour per new customer supporting them, and while this was below the price of the hourly consulting we were doing at the time, I was able to outsource some of the support to contractors.
It was also at this time that we started offering “do it for me” plans, which included 5 hours to setup and/or customize PMPro. We initially sold these at $297 each. Again below the market rates for our time, but we considered these projects a great way to gain insight into how our customers were using and wanted to use the plugin. They also gave us an opportunity to build out our addons and the feature set of the plugin. Some of our “do it for me” customers also graduated to longer term consulting engagements.
By the end of the year, we had earned $9,787 from PMPro memberships and another $7,243 from do it for me projects. Almost 20% of our consulting work was now for sites running Paid Memberships Pro. We made it our goal for 2013 to reverse those percentages so 80% of our work would be related to PMPro and just 20% would be on non-PMPro projects, and that’s what we did.
I heard someone once say that most service businesses would do well to “productize” their services a bit, and most product businesses would do well to add services to their products. What this meant in our case was we were selling “do it for me” projects as a small one time fee. These projects often had high margins (if we could finish them faster than the 5 hours quoted). Better yet, for our service business, at least 1/4 of those one time customers were converting into longer term engagements.
We got really good at setting up membership sites, and the free membership plugin was a great funnel for us. It went something like this:
- A customer finds the free PMPro plugin while looking for a membership solution for her site.
- She upgrades to the PMPro membership for $97 to ask questions about her implementation.
- She upgrades to the Do it For Me plan for $400 more to have us install PMPro.
- She hires us for a long term engagement to either renovate her website or maintain it going forward.
This is the kind of funnel that can make it worthwhile to add products to your service business even if sales of the actual product don’t justify the cost of development. Building a niche around your products can lead to more (and higher quality) consulting engagements.
By the end of 2013, we had stopped being a WordPress business and turned into a Paid Memberships Pro business. Over 80% of our consulting business was doing work on top of Paid Memberships Pro.
Sales of the PMPro support membership level accelerated as well. What happened in July there? We experimented with charging for access to the recipes and tutorials we were posting on our blog. We also slowed the amount of free support we were doing in the WordPress.org forums. There was some backlash from folks who didn’t like having to pay $97 to access “the one thing they needed” to get their site running or thought we had bad “customer services” because we didn’t support the plugin for free, but we disagreed obviously and the results spoke for themselves. PMPro memberships increased.
At the beginning of 2014 we identified 3 main business opportunities around Paid Memberships Pro.
- Annual membership fees for support and premium downloads.
- Small to medium sized installation and customization projects. ($1000-$5000)
- Large scale consulting projects. ($20,000+)
Could we tackle them all? Maybe, but we definitely would have had to take on funding to hire a bigger team in advance. While we were excited about all three of these paths, in 2014 we decided to hit #2 head on. We hired 2 developers full time and started simply saying “yes” to all of the leads coming in through the website. Things took off quickly and seemed promising.
Through the first quarter (3 months) of 2014, we quickly scaled to about $28,000/month in revenue (about 1/4 PMPro memberships, 1/4 Do it For Me projects, and 1/2 consulting). We were still turning away work. Things were crazy, but we assumed we’d be able to stabilize and then hire more developers to fulfill all of the demand.
By April however, we were running into major problems. Bringing on 30 new clients in 2 months is tough. About 50% of those clients were great and the projects were completely quickly, smoothly, and with no issues. Another 25% required additional work, but the clients were happy and willing to pay for it. We had to figure out how to fit them into the schedule, but this is what is often considered a “good problem to have”.
The big problem though was that something like 25% of the projects we started during this period were soul crushing exercises in the worst of human nature. It was all typical stuff that we had run into and learned to deal with during our years of consulting, but it was happening on a scale we weren’t prepared for. There was scope creep, needy clients, confused clients, and projects where we let ourselves get in over our heads. As soon as we managed to deal with one problem project another 2 would pop up. And as we fell behind with some projects, the quality of our work and client communication across all of our projects tanked.
25% of our projects were eating up 50% of our time and 100% of our souls.
We came up with a plan to make things better:
- Improve our on-boarding process to weed out problem clients and projects we couldn’t deliver well.
- Improve our tools to encourage better communication and scheduling with our clients.
- Improve our sales copy, documentation, and interactions with clients to avoid confusion about what we will do and how much it will cost.
I think it might have worked, but I also learned something else during this time: I wasn’t particularly great at the skills I needed to grow a consulting business, and I wasn’t having fun doing it. We scaled things back and chalked it up as a nice experiment.
The goal for 2015 would be to tackle business opportunity #1. We would focus on maintaining the core platform and find ways to better monetize the thousands of PMPro.
PMPro memberships have increased a bit early in the year, leveling off to around $10,000/month. Part of this is probably organic growth as PMPro becomes more popular. Part of it is a slightly higher number of renewals as more customers turn 1 year old and get our discounted renewal pitch. But a large part of it is also due to an increase in our blogging on the site. Every time we blog about an interesting addon or code gist that we haven’t publicized yet we capture another group of customers who figure out that PMPro would be a good solution for them.
The $97 PMPro membership has done its part to help to fund the business, but we’re going to need more revenue going forward to make up for the lost consulting income as we scale that back. Our theme coming out next week is much needed and should bring in sales while also giving us a channel to create and market child themes. The PMPro Plus level of membership gives us a price point where it makes more sense for us to improve our addons for non-developers.
We’re launching these products and some new features to the PMPro platform over the next two weeks via an email series. We’re also going behind the scenes and sharing our thought process for developing and marketing those emails. It should be an interesting read. Sign up for our free membership level to get those emails or stay tuned to the blog as we’ll try to archive them here as well.
Speaking of free levels, the second most common question about our financials after “how much do you make” is what percentage of our free users and members become paying customers. I’ll share some aggregate numbers here from the past 4 years combined. It might be useful to break this kind of thing down by year, especially as we’ve changed the pricing and focus of our offerings a few times, but anecdotally I feel that the percentages here have remained pretty consistent throughout the years.
So in the past 4 years, we’ve had:
- 378k downloads (from WordPress.org)
- 40k+ active installs (per WordPress.org)
- 39k users sign up through our website (10% of downloads)
- 24k users sign up for our mailing list (62% of users)
- 2.5k users pay for something ($97+, 6.5% of users)
- 190 users upgrade to a higher product ($297+, 7.5% of PMPro members)