> For the complete documentation index, see [llms.txt](https://docs.amply.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.amply.tools/price-management/creating-a-price-change.md).

# Creating a price change

Build a price change in the three-step form, review the computed territory-by-territory prices, apply the draft to the store, and monitor the result.

**Use this when** you're ready to push a new base price, percentage change, or matrix to the store for a specific product. **Don't use this when** you're still deciding on the target numbers — inspect current prices in [Compare](/price-management/comparing-prices.md) first, or shape the index in [Price indexes](/price-management/price-indexes.md).

## Prerequisites

* The application is connected to App Store Connect or Google Play Console and its products are visible in Amply.
* The product already has a current price in the base country (for Base-price method) or in every country you want to change (for Percentage method).
* For iOS subscriptions: a decision about whether existing subscribers move to the new price or keep the current one.
* For Android subscriptions: a product with a single base plan — multi-base-plan subscriptions are not supported.

## Step-by-step

{% stepper %}
{% step %}

### Open the form

From **Price Management**, click **New Price Change** in the top right. If the project has more than one application, the active one is preselected — you can switch it at the top of the form.
{% endstep %}

{% step %}

### 1. Product

Pick the product. The list shows subscriptions and in-app purchases for the selected application. For iOS, when the same product identifier exists as both a subscription and an in-app purchase, Amply picks the subscription.

Click **Continue**.
{% endstep %}

{% step %}

### 2. Price details

Fields depend on the pricing method you pick first.

**Pricing method**

* **Base price** — set one price in one country; Amply computes every other territory using a price index.
* **Percentage** — set one ± number; Amply applies it to every territory's current store price.

**If Base price:**

* **Base Country** — the anchor country. Currency is inferred from it.
* **Base Price** — on iOS, the field autocompletes the valid **Apple price points** (tier prices Apple accepts) for the selected country. On Android, any positive number is accepted. If the product already has a store price in the chosen base country, the field pre-fills it.
* **Price Index** — the matrix of multipliers applied for every other territory. In-app purchases default to **Apple Store Matrix (IAP)**; subscriptions default to **App Store**. Change to any system or custom index. See [Price indexes](/price-management/price-indexes.md).

**If Percentage:**

* **Percentage change** — a signed number (e.g. `-10` for a 10% cut, `+15` for a 15% bump) applied to every current store price.

**Start Date**

When the new prices go live. On iOS, the earliest is tomorrow — Apple rejects same-day updates. On Google Play, the change is accepted immediately but can take several hours to appear on the listing.

**Price change audience** (iOS subscriptions only)

* **New subscribers only** — existing subscribers keep their current price. New subscribers get the new price.
* **All subscribers** — existing subscribers move to the new price on the start date.

Price decreases apply to everyone regardless of this setting.

**Rounding Strategy**

* **No Rounding** — raw computed price is used.
* **Decimal Rounding** — round each price. Pick:
  * **Rounding Direction** — Round to nearest / Round up / Round down
  * **Rounding Profile** — Sharp (`.99`/`99`/`999`), Soft (`.95`/`95`/`950`), Round (`.00`/`00`/`000`), Half (`.50`/`50`/`500`)

Click **Continue**.
{% endstep %}

{% step %}

### 3. Adjust

Review the full per-territory table. Amply computes a new price for every territory the product is available in. Rows are grouped by continent; use **Expand all** / **Collapse all** to navigate.

For each row you can:

* Edit the **new price** inline to override the computed value.
* Untick the row's checkbox to skip that territory.
* Untick a continent header to skip every territory in that region.

A banner at the top lists any territories where the store doesn't support pricing for this product; those are excluded automatically.

Click **Create** at the bottom. The batch saves as a **Draft** and you land on the edit screen.
{% endstep %}
{% endstepper %}

## Drafts

A draft is never sent to the store. You can leave it as long as you like; return to **Price Management**, filter by **Draft**, and open the row to resume editing.

On the **Edit Draft** screen:

* Change individual territory prices and skip flags.
* **Delete** — remove the draft.
* **Apply** — submit the batch to the store. The batch moves to **Pending** and you're taken to the detail view.

Drafts with an expiration date show a reminder in the header; after that date they're cleared automatically.

## Monitoring a batch

Open any non-draft batch from the history. The detail screen shows:

* A status chip in the header: Pending, Sending, Completed, Incomplete, Failed, Cancelled, or Deferred.
* Six counters: Total, Completed, Unchanged, Failed, Deferred, Pending.
* A stacked progress bar colored by entry status.
* A per-territory table: Territory, Original price, New price, Diff (%), Status, Attempts.

While the batch is in flight, the page auto-refreshes every two seconds. Territories move through their own states: Pending → Sending → Completed, Failed, Skipped, Deferred, or Unchanged. An **Unchanged** entry means the computed price equalled the store's current price — no write was made.

### Recovering from failures

When the batch is terminal (Completed, Incomplete, Failed, or Cancelled), two recovery actions may appear in the header:

* **Retry failed (N)** — re-submit every Failed entry. Use this after transient store errors. The batch re-enters Sending.
* **Resume now (N)** — push every Deferred entry immediately. Deferred usually means the store throttled the original attempt; this retries it right away.

While the batch is still in flight (Pending or Sending), the header offers **Cancel batch** instead. Cancelling stops further submissions; already-synced prices stay live.

A fourth action, **Save as custom index**, is shown for any Base-price batch that has entries — it doesn't depend on the batch being terminal. Use it to turn the per-territory matrix into a reusable index. See [Price indexes](/price-management/price-indexes.md#save-a-batch-as-an-index).

## Common mistakes

* **Base price that isn't a valid Apple tier.** On iOS, the base price must match an Apple price point — use the autocomplete dropdown.
* **Start date set to today.** Apple rejects same-day updates. Set tomorrow or later.
* **All prices Unchanged.** The batch submitted fine but the computed prices matched current store prices exactly. Adjust your base price, percentage, or index.
* **Started the batch before checking availability.** If a product isn't published in a country, that territory is skipped automatically and listed in the banner. Publish it in the store first if you want to include it.

## Related

* [Price management overview](/price-management/price-management.md) — feature overview and status reference
* [Price indexes](/price-management/price-indexes.md) — how the matrix used in "Base price" is defined
* [Comparing prices](/price-management/comparing-prices.md) — preview current prices across products
