Slopes Diaries is my ongoing journey to turn my indie app into a more sustainable part of my business. First time reading? Catch up on the journey so far.
What is Slopes? Think Nike+, Runkeeper, Strava, MapMyRun, etc for skiers and snowboarders.
With spring hitting the US and the ski season coming to a close (😢), it's the time of year where Slopes's revenue slows down dramatically, dipping into the mid-double-digits in daily sales before dropping off entirely. I'll see some revenue over the summer from people riding in the southern hemisphere, but that wasn't substantial last year (~5% overall, less than I expected) (although maybe with Search Ads in Aus / NZ now, I might have better luck?).
With the season mostly over, this is the time of year I look back at how my efforts for growing Slopes went. What follows is a mix of numbers (gasp!) and thoughts that are as much for you as they are for me to work things out.
Slopes 2.4x'd revenue (after Apple's cut) this season compared to the same time period last season. After this summer's numbers come in I'm estimating I'll be just 1.5k short of the $40k/yr milestone I've been working towards (unless ~90 of you want to go buy a season pass today? 🙇).
While I'm so-close-but-not-quite-there to the milestone, the growth this year is still amazing. The revenue growth alone this season was more than I earned in two years as a paid up front app. ObamaNotBad.jpg, indeed.
But there are more important numbers than just high-level revenue.
Under the Microscope
This was my first season with the revised IAP strategy (TL;DR: yearly subscription + one week and one day consumable pass alternatives, vs the old subscription + one month consumable "trial" alternative) and it seems to have worked well in my quest for world domination. I'm still seeing the same revenue split as last year, 50% subscriptions 50% consumable IAPs, but the number of people who bought a consumable IAP is 6x higher than last year (with downloads only having grown 49% year over year). These IAPs are really helping me address the market of skiers and snowboarders that only make it out once or twice a season, and it is crazy to realize how much I'd leave on the table if I hadn't changed course and offer these consumable IAPs. The day and week passes have a lower cost than the month pass did, which is why it took such a volume to keep up the revenue split, but I'm OK with that. My gut is happy with the price points, and more importantly I'm happy seeing so many more people able to use Slopes as a result.
My lifetime conversion rate has crept up this season as a result of the new options, improvements to in-app marketing of them, and their resulting popularity. In the last 2 years 5.8% of people have bought something in Slopes (up from 3.7% last year).
Lifetime revenue per download has gone up 28%, too. Don't get too excited, though; we're still talking well under $1 per download.
Being year two of having subscriptions I can finally start to measure churn. I more than doubled the number of new subscribers this year, but had a 40% churn on subscribers from last year (with another 10% buying the consumable IAPs instead). This is a huge red flag for me; I want to drive this number a lot lower and better understand what is going on. I reached out in January to people who had let their pass expire without buying a new one: only ~10% replied, but 90% of those that did said it was just because they couldn't get out to ski yet this year. Many even ... apologized (I love my customers). Encouraging, but still.
But even if I can't improve my churn and it remains the same, I'm still set up nicely for next season. If 40% of people still churn out again I've got $15k in subscription renewals coming in next year. Best case with no churn I'm looking at $23k in renewals (vs a best-case of $8.9k in renewals from last season to this one). I expect to be somewhere in between now that I'm using Apple's subscription SDK vs manual re-purchases (and those numbers include the lower 15% cut for year-two subscriptions).
That $15k worst-case renewals is almost my entire revenue from last year, and is before considering any revenue from new subscribers or consumable IAP purchases (which accounted for >90% of my revenue this year).
I think I'll crush my $40k milestone next season no problem. 🤞
On the download front, I was up 49% this year. I think this came from two parts: word of mouth is continuing to grow (freemium helps a lot here), and my more effective use of paid advertising. I learned a lot with paid ads the previous season, leading to a much better cost per download this year. I only paid $2.6k this season for ads on various platforms, but I saw 6.3k downloads come from that spend (that is $200 less than last year but with 2k more downloads). While ads were only directly responsible for a 6% boost in downloads, they helped keep Slopes higher in the charts, which brought in more organic downloads.
Slopes has now been downloaded over 175k times, 103k of which was in the last 5 months alone. And, best I can tell, over 100k people still have Slopes installed.
I like most of these numbers; churn aside everything is coming up Millhouse.
Looking Back, and Forward
I started the season in a panic feeling the need to localize (and getting burnt out in the process) to address Europe to continue to grow at a strong rate. Turns out, it wasn't as needed as I thought; I had a lot of room to grow in US / Canada / UK (and still do). I haven't given up on making Slopes better for Europeans, but I've come to realize localization is a bigger project than I think I can take on in the near-term, and I have some other easier ways to improve Slopes for Europe.
I'm really happy that even without a massive new-market-enabling feature like localization, Slopes did wonderfully growing this year. I was able to turn around from that burnout and ship two more major updates this season. Slopes 2 is in great shape.
I know I need to work on continuing to better understand my customers: why they don't buy at all, and why after they do buy they don't renew. Growth is going well, so I need to double-down on churn and conversions. I'll lose plenty of people to seasonal ups and downs, but I'm far far far away from being otherwise optimized in keeping users engaged. I don't think this is a case where one or two awesome new pass-exclusive features will fix everything, either.
As an app that lives purely on a user's phone, without much of a web component, there are only so many things I can do to understand my users and keep them around (and, hopefully paying). For example, if they go skiing without a pass I can't email them a few days later with an offer code for a discount. So many great lessons from the SaaS world I can't apply.
My plans for next season's first update are ambitious. I started to lay groundwork in code back in March (before a small detour to support Siri on Apple Watch, which is 💯 BTW). I've got 6 months to ship, but I also know I've got a lot on my plate. I'm hoping I haven't bitten off too much (again), but I'm genuinely excited for what I have planned this time around.
Hopefully these plans prove to be the mix of great-for-business and great-for-customers that I'm thinking they will.
So, yeah: another season in the bag, and numbers I'm overall very happy with. I'm cautiously very optimistic about what next season might bring, if trends continue.