Reacting to Pricing Backlash: Lessons Learned

My take on how to find the right pricing and how I reacted to a user calling my app "overpriced". Learn from my mistakes and avoid bad reviews.

Reacting to Pricing Backlash: Lessons Learned

Pricing is hard. You can never make everyone happy. I know all this. But it still depresses me for longer than I want to admit when I read a review like this:

A user expressing their feelings with a negative App Store review.

It's really tough to withstand the temptation to just follow their request to lower the price. And I haven't always been able to withstand it as you can see here:

A user on Reddit complaining about the price of an up-front paid app.

I'm a human after all and I want people to like what I do. But I also have to make money as an Indie developer or I can't continue improving the app. So, it's even in the interest of users that I put a fair price on it, not just mine. But what is fair?

"Fair" Pricing

One could look at this from many different perspectives.

From an economical point of view, my goal should be to maximize my earnings. If you're looking for an article about different strategies to do that, you're better off reading an article like this one. To me, profit is just a means to keep me motivated to continue building apps. It's not the goal. The user experience is all that matters. And solving problems. A fair price is part of a good UX to me. 🤷‍♂️

A pure developer point of view could be to price an app based on the effort it required to make it. Sounds fair, right? But it doesn't work in a free market. And for good reason! What if you've built something super complex but totally irrelevant? Why should anyone pay a high price for that? Would you?

That brings me to how I always tend to choose my initial prices. What would I pay if this app was built by someone else and I just wanted to use it? Because I exclusively build apps that I need myself, I'm also a customer! So it's like a one-person customer research my initial pricing is based on. But is this a good idea?

At least it's not if I want to avoid bad ratings like the 2-star one above. Why? Because I'm not only a customer, but I also know exactly what my app offers. But users don't. They will only know what I've presented to them on the App Store page and in my Onboarding. And probably not even all of what I present there.

The User's Perspective

So, what feels fair to a user is very much dependent on how the user perceives the value of an app. For example, the above bad rating I received for TranslateKit. My preview video on the App Store page communicates the ease of use of the drag & drop workflow to translate apps. But the user complained because they had to register for a 3rd-party translation service to use the marketed features.

Of course, I mention that requirement in my App Store description. But who reads descriptions? Nobody! I could do what the user requested and provide built-in support for those translation services. But then I would have to pay for those services and add that price on top. And I would additionally have to host a proxy server to make sure my API keys don't get exposed, adding even more costs.

That's not good for most of my other customers though. After all, each translation service I support has a huge free tier that is more than enough to localize any size app to many languages! The only problem is the extra hurdle of registering a free account & getting the API keys. I try to help by linking to the right pages:

All 3rd-party services expanded linking to registration & API key docs.

That hurdle probably caused frustration on the users end who expected to simply "drag & drop" their String Catalog after downloading the app like shown in the preview. But they couldn't do it right away. And as a consequence, they expressed their feelings by criticizing the only thing they have actually knowledge about: The pricing. Because you can see it by clicking on "Upgrade" on the main window.

The top section of the main window in TranslateKit.

Addressing the Complaint

The easiest thing I could do to prevent users complaining about the pricing would be to hide the information about the paid tier until the user exceeds the Free limit. But I consider this a dark pattern, so I wouldn't ever do that. And even if I did, they would probably just complain about something else, it doesn't solve the issue.

Much more useful to prevent bad ratings would be if I provided more guidance and help to create those accounts, including maybe step-by-step guides or videos. But that's just a matter of lowering the effort, it could still be too much for some!

The analysis above leads me to think that it's actually not the pricing of my app that lead to the bad rating, but my inability to communicate its value. Users can't know that my app not just connects String Catalogs with translation services, but that it also does all kinds of smart stuff behind the scenes to ensure the resulting translations are accurate. A simple way to communicate this is with an example:

New window shown on first app start to communicate app's value.

By showing the different stages a translation can walk through on app start, I'm explaining to my users what additional value my app brings on top of what's already obvious from the Store page. Additionally, I should probably make these stages & adjustments clear in my apps translation UI, which I might do in a future update. But it wouldn't have helped to address the bad rating anyway since you would only ever see the translation UI after setting up at least one API key.

Conclusion

Pricing is indeed hard and I'm still not 100% sure what I'm doing is right. And I probably never will. But at least I don't feel bad about my price as my app saves many hours of time and costs much less than the average hourly rate. And I know people subscribe to the app from the numbers on App Store Connect. Each purchased subscription is someone telling me "the price is not too high".

Just because a customer complained about the price, it doesn't mean it's wrong. The most depressing reviews can sometimes provide the most useful insights into the flaws in your apps Onboarding. Don't ignore them outright. Try to understand where your users might be coming from first. And communicate your app's value!

🌐
Enjoyed this article? Check out TranslateKit!
A drag & drop translator for String Catalog files – it's really easy.
Get it now to machine-translate your app to up to 150 languages!
👨‍💻
Want to Connect?
Follow me on 🐦 Twitter (X), on 🦣 Mastodon, and 🧵 Threads.