App Store Connect Pricing: The Complete Guide for Developers
App Store Connect’s pricing system is powerful but poorly documented. This guide covers everything: territories, tiers, currencies, equalization, scheduling, and the differences between app, subscription, and IAP pricing.
The basics: how App Store pricing is structured
Apple sells apps and in-app purchases in 175 territories worldwide. Each territory uses one of 43 currencies. When you set a price in App Store Connect (ASC), you don’t enter an arbitrary number. You choose from a predefined set of price tiers. Each currency has roughly 800 available tiers, ranging from the currency equivalent of $0.29 up to $999.99 and beyond for subscriptions.
Why tiers? Apple needs to handle sales tax, currency conversion, and developer payouts across dozens of jurisdictions. If you typed in $4.37, that might not produce a clean after-tax price in Japan. So Apple precomputes tiers that land on consumer-friendly numbers in each local currency.
So you can’t set a perfectly arbitrary price. You pick the tier closest to your target. In most currencies the tiers are spaced finely enough that you’re off by a few cents at most. In some currencies the granularity is coarser and rounding matters more.
Territories, currencies, and the mapping between them
Of the 175 territories, many share a currency. All Eurozone countries use EUR. Several West African nations use XOF. Caribbean territories might use USD directly. So you’re really setting about 43 currency-level prices, each mapping to one or more territories.
That said, Apple treats territories individually for reporting and availability. You can make your app available in Germany but not France, even though both use EUR. Pricing is set at the territory level in the API, even when two territories share a currency and land on the same price.
Here’s a rough breakdown of the 43 currencies and their coverage:
- USD: United States and several territories that peg to the dollar (Ecuador, Panama, etc.)
- EUR: 23 territories across the Eurozone and associated economies
- GBP, JPY, AUD, CAD, CHF, KRW, CNY: Major currencies each covering one to a few territories
- INR, BRL, MXN, ZAR, NGN, EGP, TRY, etc.: Emerging market currencies, often covering a single territory
- XOF, XAF: CFA franc zones covering multiple West and Central African territories
This mapping matters when you change prices. If you update one EUR territory, you probably want all EUR territories to stay consistent. Or maybe you don’t, and you deliberately price them differently based on local purchasing power, even within the same currency zone. Either way, it’s a conscious choice.
The base country and equalization
Every app, subscription, and IAP in App Store Connect has a “base country” — the territory whose price is your canonical reference. For most developers, that’s the United States.
When you set a base-country price, Apple offers “equalization” (also called “auto-pricing” or “generate automatic prices”). Turn it on and Apple calculates prices for all other territories using the base-country price, exchange rates, and tax differences. As exchange rates move, Apple periodically recalculates.
Equalization is convenient but has real limits:
- It only accounts for exchange rates and taxes, not purchasing power. A $9.99 app equalized to India will land at roughly the exchange-rate equivalent of $9.99, which is far too expensive for most Indian consumers.
- You lose control over individual territory pricing. If Apple recalculates and moves your Japanese price up by two tiers, you have no say in the matter.
- The recalculation schedule is opaque. Apple says “periodically” and leaves it at that.
If you want real control over international pricing, especially with PPP adjustments, the typical approach is to set the base-country price and then manually override prices for every other territory. This disables equalization for those territories.
App pricing vs. subscription pricing vs. IAP pricing
App Store Connect handles these three categories differently, and the differences will bite you if you don’t know about them.
Paid app pricing
The simplest case. You pick a tier for each territory. The price applies immediately (or on a scheduled date, more on that below). No existing subscribers to worry about. Change from Tier 5 to Tier 3 and every new buyer gets the new price. Existing buyers already own the app.
One thing to watch: if you change the base-country price and equalization is on, other territories get recalculated. Manual overrides are preserved, though.
Auto-renewable subscription pricing
This is where it gets complicated. You set a price for each territory, same as paid apps. But subscriptions have “subscription price increases” that affect existing subscribers differently depending on how big the increase is and which territory they’re in.
The rules you need to know:
- If you increase a subscription price by more than 50% and more than 50 USD-equivalent (the higher of the two), existing subscribers must explicitly opt in to the new price. Otherwise their subscription lapses.
- Smaller increases can be applied without explicit consent in most territories, but Apple sends a notification to the subscriber.
- Price decreases take effect immediately for new subscribers and at the next renewal for existing subscribers.
- You can keep the old price for existing subscribers while charging new subscribers a different rate, but only by creating a new subscription offer or using introductory pricing.
Subscription pricing also supports “subscription offers” and “offer codes,” which let you set temporary promotional prices for specific territories. These are separate from the base subscription price and have their own tier system.
Non-consumable and consumable IAP pricing
In-app purchases (IAPs) work like paid apps. Same tier system, one tier per territory, price changes take effect immediately. No subscriber headaches since IAPs are one-time purchases (non-consumables) or repeatable purchases (consumables).
One gotcha: the App Store Connect API uses different endpoints and schemas for IAPs vs. subscriptions. Don’t assume they work the same way.
Scheduling price changes
You can schedule price changes for a future date. Handy for coordinating a price drop with a marketing campaign or running a time-limited promotion.
Some things to know:
- Scheduled changes go live at midnight in each territory’s local time zone (specifically, the time zone of the App Store for that territory, which is typically the capital city’s time zone).
- You can schedule a start date and, separately, schedule a return to the original price. This lets you run a one-week sale without having to remember to manually revert.
- For subscriptions, scheduled price changes follow the same subscriber-notification rules as immediate changes. Apple sends notifications in advance of the effective date.
- Only one pending change can be “active” at a time. You can’t queue a chain of price changes months out ($4.99 in April, $5.99 in June, $3.99 in August). You have to set each one after the previous change takes effect. Annoying, but that’s how it works.
The App Store Connect API for pricing
Apple has had a REST API for App Store Connect since 2022. The pricing endpoints let you:
- Read current prices for all territories
- Set new prices (with or without scheduling)
- Read the full tier reference data for each currency
- Manage subscription pricing, including price increases
Authentication is JWT-based with a .p8 private key you generate in your ASC account under “Keys.” You need an Issuer ID, Key ID, and the private key file. Tokens expire after 20 minutes, so your client needs to handle re-signing.
The pricing API is verbose. Updating one subscription across all 175 territories means constructing a request with 175 territory-price pairs, each referencing the correct tier ID for that territory’s currency. You fetch the tier reference data first, map your desired prices to tier IDs, then submit the update.
For a single product, a script handles it fine. For multiple products across multiple apps, the boilerplate adds up fast. That’s one reason developers reach for tools like PricePatch that abstract away the API complexity and let you work with a visual price grid instead.
Common mistakes developers make with ASC pricing
1. Setting the base country price and nothing else. If you only set a USD price and rely on equalization, Apple is running your international pricing strategy. Their equalization is exchange-rate-based, not PPP-based. You’ll overcharge emerging markets and potentially undercharge high-income ones.
2. Ignoring tax-inclusive vs. tax-exclusive pricing. Most territories show prices with VAT or sales tax included. The US shows pre-tax prices. So $0.99 in the US and €0.99 in Germany (which includes 19% VAT) are not the same thing from the consumer’s perspective. Apple accounts for this in tier construction, but if you’re comparing numbers manually, make sure you’re comparing like with like.
3. Not reviewing after Apple tier adjustments. Apple occasionally adjusts tiers, especially for currencies with big exchange rate swings (Turkey, Egypt, Nigeria, Argentina). When they do, your manually set prices might get remapped to different tiers. Review your pricing whenever Apple announces tier changes.
4. Treating all 175 territories equally. They’re not. For most developers, 80%+ of revenue comes from fewer than 20 territories. Spend your time optimizing those. Use a reasonable default (equalization or a PPP adjustment) for the rest.
5. Changing subscription prices without understanding the consent rules. A big subscription price increase can trigger opt-in requirements, and a chunk of your subscribers just won’t bother. If you need to raise prices significantly, smaller increments over time keep you below the consent threshold.
6. Not using the API. Updating prices through the ASC web interface means clicking through each territory one by one. Tedious for one product, impractical for several. The API (or a tool that wraps it) lets you update everything in a single batch.
How to set up pricing from scratch
Here’s what we’d do, whether you’re launching a new app or repricing an existing one:
1. Decide your base price in USD (or your preferred base currency). This is your anchor. Pick a price that makes sense for your home market.
2. Pick a PPP index for calculating international prices. Not sure which one? The Netflix Index is a solid default for subscriptions. The Big Mac Index works well for one-time purchases. See our guide to PPP indices for a detailed comparison.
3. Calculate adjusted prices for all territories. Multiply your base price by the PPP ratio for each territory. Map each result to the nearest valid App Store tier for that territory’s currency.
4. Review the price grid. Look for outliers: territories where the adjusted price seems too high or too low. Check that neighboring territories with similar economies have similar prices. Manually adjust any that look wrong.
5. Stage the changes before applying. If you’re using the API or a tool like PricePatch, create a change-set and review the diff against your current live prices. This is your last chance to catch mistakes before they go live.
6. Apply the changes. Push the new prices to App Store Connect. For subscriptions, think about timing. Apple sends subscriber notifications, so you may want to coordinate with your own in-app messaging.
7. Verify in ASC. After applying, spot-check a few territories in the App Store Connect web interface to confirm the prices landed correctly.
8. Schedule a review. Put a quarterly reminder on your calendar to revisit international pricing. Exchange rates drift, new PPP data is published, and Apple adjusts tiers.
Tools that help
You can do all of this manually in the ASC web interface or with your own scripts. But if you have more than one product or want PPP-adjusted pricing without the spreadsheet work, there are a few dedicated tools:
- PricePatch — native Mac app with 10 built-in PPP indices, change-set workflows, and batch apply across all 175 territories. Talks directly to the ASC API.
- Pricetag — another Mac-native option focused on simplifying the ASC pricing UI.
- PriceKit — web-based, works from any browser.
We wrote a comparison of all three tools if you’re deciding between them.
Final thoughts
App Store Connect’s pricing system is more flexible than most developers give it credit for. You get real control over international pricing through tiers, equalization, scheduling, and the API. But 175 territories and ~800 tiers per currency means there’s a lot of surface area to manage.
The developers who get this right treat pricing as a product decision, not something you set once and forget. Pick a strategy, whether that’s PPP-based or competitive or value-based. Implement it across all territories. Then actually come back and review it quarterly.
Whether you use a spreadsheet, a custom script, or a tool like PricePatch, the point is to make deliberate choices about what customers in each territory pay instead of leaving it to Apple’s default exchange-rate math.