HACKER Q&A
📣 jamesfisher

How do you localize your prices?


We recently released an online course. [1] It's $29, but we've had users saying, "I'm in ${country poorer than USA}, and I can't afford the $29. Do you offer regional pricing?"

I would like to support this. The dollar-value to a customer in India is probably lower than in the USA.

Most big platforms (Udemy, App Store, Play Store) seem to solve this with a price tier matrix. They maintain a big table of prices per (tier, currency). The tier comes from the product, and the currency comes from ... the user's IP address? (See example matrix [2])

To build this from scratch, I would have to:

* Define a list of tiers, each with a hard-coded USD price.

* Maintain a list of Purchasing Power Parity multipliers for each currency. For example, regularly scrape OECD data.

* To get a tier's price in currency X, multiply by the current PPP.

* Somehow clamp the prices to "appealing" values, so we get e.g. £25 instead of £24.19.

* Ensure we never make a loss after subtracting Stripe fees!

* Detect a user's location. Presumably using IP. Map location to a country, and country to a currency.

* Probably many more things I haven't thought of.

This feels like a generic problem that I shouldn't be re-solving myself. So, questions:

* What libraries/services can I use instead?

* How do you do implement localized pricing?

* Are there complexities that explain why there's not an out-of-the-box solution?

[1]: https://news.ycombinator.com/item?id=32118530 [2]: https://s3.amazonaws.com/udemy-images/support/Udemy+Price+Tier+Matrix+-+EN+09-17+Matrix.pdf


  👤 jamesfzhang Accepted Answer ✓
Hey there! I work on Stripe Checkout and we recently released an update that should make selling globally a lot easier, removing most of the bullet points in your post.

Here are the docs, and please let us know if you try it out and have feedback: https://stripe.com/docs/payments/checkout/present-local-curr...

Thanks!


👤 muzani
A solution I like is just two tiers. Full price and discounted price. People from certain countries get the discounted price.

Then figure out a line where it's worth discounting. Perhaps 5x lower purchasing power than say, the US. Maybe a third tier if it's 15x difference, though I doubt it's that bad.


👤 howlett
As a user I hate it when I get localised prices, especially if the at-the-time exchange rate ends up being more expensive for me. If I see something sold for $9.99 but I get £9.99 I think "why am I paying more for this", simply because the exchange rate is more favourable since I'm in the UK. But when I only see USD prices I'm more likely to buy something as it's not overly complicated.

If you want you could pull real-time exchange rates and have a button that indicates the conversion for someone who wants to see the "most likely" price (depending on when they actually pay for it).

For example if you sell something for $9.99 just leave it as such, and Stripe will make the conversion and you'll always sell at the same price regardless from where someone is coming from.

That's how I feel about it anyway!


👤 jimkleiber
The approach I'm trying is to set a price and then give people an option to raise it or lower it based on what they can or want to pay, maybe along with a message talking about the difficulty in creating prices for people across the world.

Currently, I only have this set to some of the more scalable options (the plan to get access to all the recorded audios and not the plan where I give an hour of 1-on-1 calls per month), yet it may even work for things with more variable costs, if the minimum price is still sufficient.

So that's what I'm gonna try, because as you mention, the other way seems highly complex and also we customers can sometimes feel annoyed by regional pricing, especially for digital goods. But who knows how it'll work.


👤 jaclaz
Don't forget VAT (in EU countries but possibly not only there, GST in Australia).

There is a VAT MOSS (Mini One Stop Shop) requirement for selling courses in EU AFAIK, see (example only, no idea if contents are accurate):

https://botflo.com/eu-vat-moss-tips-for-online-course-creato...

This (of course it is essentially an ad for the company) quickly explains the possible issues:

https://www.youtube.com/watch?v=azeNA13kVpY


👤 beardyw
I think you are going to tie yourself in knots with this.