> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/subscriptions/pricing-and-billing/realigning-existing-subscriptions-to-current-prices-price-sync.md).

# Realigning existing subscriptions to current prices (Price Sync)

Realign every existing subscription contract to your current product prices and selling-plan discounts in one go.

When you change a product's price or a selling plan's discount, existing subscription contracts keep billing at the old amount. Subscription Price Sync brings them up to date in a single operation.

This article walks through the Preview → Proceed flow, what gets skipped, and when to run it.

#### When to use Price Sync

Run Price Sync after:

* a product-price change that should apply to existing subscribers
* a selling-plan discount change (e.g., changing 10% off to 15% off)
* migrating subscribers from a deprecated selling plan to a new one
* discovering some contracts are out of sync with current prices

If you only want to change prices on a few products, [Bulk-adjusting subscription product prices](/subscriptions/pricing-and-billing/bulk-adjusting-subscription-product-prices.md) is the more targeted tool.

#### How Price Sync works

Price Sync compares each line on each active, paused, or failed contract against:

* the latest variant price for that product
* the discount defined on the matching selling plan

If either differs from the current contract, the line needs updating.

#### Run a preview first

The preview is non-destructive — no contracts are changed. It analyzes the first 100 contracts and shows what would happen.

{% stepper %}
{% step %}
Open Price Sync

In Roadmap, open Subscriptions, then Subscription Price Sync.
{% endstep %}

{% step %}
Click Preview Changes

Roadmap analyzes the first 100 contracts and breaks the result into four counts:

* Contracts analyzed — total examined
* Need update — would change if you proceed
* Already correct — no change needed
* Line items changing — total line items across all "Need update" contracts
  {% endstep %}

{% step %}
Review the per-contract list

The preview table shows each contract that would change, the customer, the products, what they currently pay, what they'd pay after sync, and what's changing (price, discount, or both).
{% endstep %}

{% step %}
Download the full preview CSV

The preview table only shows the first 100 contracts. To review every contract that would change, click Download Full Preview CSV.

This is the recommended step if you have more than 100 contracts on the store.
{% endstep %}
{% endstepper %}

#### When lines get skipped

A "skipped lines" warning appears in the preview when Roadmap can't safely update a line. The most common reason: the base price changed but Roadmap couldn't find a matching selling plan or pricing policy to determine what discount the line should keep.

Without that, syncing the line would push the customer to the full base price — losing their subscriber discount. Roadmap won't do that automatically; it skips the line and lists it for manual review.

Skipped lines appear:

* in the preview, as a separate "skipped" count with a warning banner
* in the failed report after a sync run, flagged for manual review

#### Proceed with the sync

Once you've reviewed the preview:

{% stepper %}
{% step %}
Click Proceed with Sync

The button shows the count — for example, "Proceed with Sync (2 contracts)". Roadmap kicks off a background job that processes every eligible contract on the store, not just the first 100 from the preview.
{% endstep %}

{% step %}
Wait for the job to finish

You can leave the page. Roadmap processes contracts in batches of 25 in the background. Only one Price Sync job can run at a time. If a previous job is still running, you'll need to wait for it to finish.
{% endstep %}

{% step %}
Download the result reports

When the job finishes, two CSVs are available:

* Success report — every contract that was updated, with the changes
* Failed report — every contract or line that was skipped, with the reason
  {% endstep %}
  {% endstepper %}

#### Cross-unit interval matching

If a contract was created on a monthly plan but the store now only offers weekly plans, Price Sync still works. It maps intervals across units:

| Contract interval | Matches selling plan |
| ----------------- | -------------------- |
| MONTH-1           | WEEK-4               |
| MONTH-2           | WEEK-8               |
| WEEK-4            | MONTH-1              |
| YEAR-1            | MONTH-12 or WEEK-52  |

Approximations: 1 month ≈ 4 weeks, 1 year ≈ 52 weeks. This handles most real-world plan migrations cleanly.

#### Contracts that won't be processed

A contract is left alone if it has pending billing-cycle edits — for example, a skipped order, a one-time discount applied, a quantity change scheduled for the next cycle. Syncing in the middle of a pending edit risks conflicts, so Price Sync defers these contracts.

These contracts appear in the failed report so you can finalize the pending edits and re-run Price Sync.

#### Job safety

* Only one Price Sync job runs at a time.
* If a job has been running for more than 20 minutes, Roadmap considers it stale and lets you start a new one.
* Each contract appears in either the success or failed report — never both.

#### If a contract you expected to update was skipped

Common reasons:

**"No selling plan or pricing policy found"**

The original selling plan was deleted and no plan with a matching interval exists on the store. To fix, recreate a plan with the correct interval, then re-run Price Sync.

**"Pending billing-cycle edits"**

The contract has a scheduled change. Open the contract, finalize or clear any pending edits on upcoming cycles, then re-run.

**"Already correct"**

The line is already at the right price. No action needed.

#### Related guides

* [Bulk-adjusting subscription product prices](/subscriptions/pricing-and-billing/bulk-adjusting-subscription-product-prices.md)
* [The Subscription Activity Timeline](/subscriptions/managing-subscriptions/the-subscription-activity-timeline.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/subscriptions/pricing-and-billing/realigning-existing-subscriptions-to-current-prices-price-sync.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
