Purchasing power parity (PPP) is one way to vary your prices by region – a customer in a country with lower purchasing power sees a lower price, automatically, with no customer-facing toggle. Fontdue supports two ways to set this up: live World Bank data, or hand-curated multipliers.
Both options sit on top of a country order variable – only one is allowed at a time, and the customer’s country is detected from their location11Specifically the Cloudflare CF-IPCountry header. so there’s nothing for them to select.
World Bank data source
The World Bank data source supports every country with multipliers that update as the World Bank publishes new data – typically once a year for most countries. It’s a good default if you want regional pricing without curating a country list yourself. The Fair price adjustment preset uses this data source out of the box.
To set it up from scratch, create a Country variable and set its data source to World Bank. Then click Configure PPP settings to tune the two settings that control how strongly PPP affects your prices:
- PPP scale – a number between 0 and 1.
0disables the World Bank multiplier (prices are unchanged);1applies it as-is. Lower values soften the discount22A scale of 1 can produce dramatic discounts for low-income countries – sometimes more than 80% off – which may be more than you want to offer. while still making fonts more accessible in lower-income regions. - Minimum order item amount – a per-item floor below which the multiplier won’t drag prices33The floor is applied to each order item individually, not to the order total.. Setting this to at least a few dollars protects against Stripe’s per-charge minimums in heavily-discounted countries.
How the multipliers are computed
Fontdue computes World Bank multipliers from two indicators:
PA.NUS.PRVT.PP– PPP conversion factor for private consumption (LCU per international $). For each country, this gives a value in the local currency representing the cost of a basket of goods equivalent to $1 USD. As of 2025, Brazil’s PPP value is R$2.52 BRL (computed in 2024).PA.NUS.FCRF– Official exchange rate (LCU per USD, period average). Updated yearly. For Brazil in 2024, this is R$5.39 = $1 USD.
The two combine so that a country’s multiplier reflects both local prices and its exchange rate against your store’s home currency. Fontdue indexes multipliers by your store’s home country (set in Settings → Company information) so your home country always gets a multiplier of 1:
M = 1 + s * ((P_c / e_c) * (e_b / P_b) - 1)
where:
P_c = country PPP factor
P_b = store country PPP factor
e_c = country exchange rate
e_b = store country exchange rate
s = scale factor
Daily exchange rates aren’t used: they fluctuate constantly, but PPP conversion factors update at most once a year and are recorded at a point congruent with the corresponding exchange rate data, so mixing daily rates with annual PPP factors would overcorrect. Day-to-day FX movement is better handled at the payment layer – if you’ve enabled Stripe’s Adaptive Pricing in your Stripe dashboard, customers can pay in their local currency at Stripe’s current rates, independent of the PPP multiplier Fontdue applies.
Manual data source
Use a manual country variable when you want explicit control over which countries are discounted and by how much.
Go to Catalog → Order variables → Add variable, pick Custom variable, and set its data source to Manual.
Pick a country from the Add a country… dropdown and set its multiplier (e.g. 0.77). Two shortcuts can save time:
- Upload CSV – bulk-load options from a CSV with a header row and
country_code,multiplierdata rows44CSVs use ISO 3166-1 alpha-2 country codes (e.g.DE,BR,IN); the manual dropdown handles country names directly, so codes only matter for the CSV.. - Import from World Bank – seed the table with the World Bank-computed multipliers for every country, using your current PPP scale. After importing, the variable stays in Manual mode so you can tweak individual values55The imported values are a static snapshot at import time – unlike the World Bank data source, they don’t refresh when the underlying data updates. Re-import to pick up new values..
Click Configure PPP settings on the variable to set a minimum order item amount.
Customers in countries you haven’t listed see your normal prices; customers in listed countries see the multiplied price automatically.