# Run a timed sale

> Take a percentage or an amount off variant prices for a set time, show the old price as the compare-at price, and put prices back at the end.

Guides · 2 min read · Updated November 4, 2026

A sale is a **Window** with a **Variant prices** change: prices drop at the start and go back at the end. Variant prices are on the Extra and Unlimited plans.

## Set up the sale

### 1. Start from the template

Select **New schedule**, then the **Flash sale prices** template: 20% off for 48 hours, then back. Or start blank and choose **Window**.

### 2. Set the window

Choose when the sale **Starts** and **Reverts**, in your store's time zone or another.

### 3. Pick the products

Add a **Variant prices** change and choose products (all their variants) or single variants.

### 4. Set the price

Choose how the price changes:

- **Set a price**: every variant gets the same price.
- **Take a percentage off**: above 0, up to 100.
- **Take an amount off**: in your store's currency.

### 5. Round and show it's on sale

Pick a **Rounding**: **Round down to .99**, **Round down to .95** or **Round down to a whole amount**. Rounding goes down, so a discount is never less than you set.

Set **Compare-at price** to **Set to the price before the change** to show each variant as on sale, with its old price crossed out.

Try the numbers:

> **Try it:** [Try a price change](https://metascheduler.app/help/run-a-sale)

| Now | At start | At end (revert) |
| --- | --- | --- |
| $40.00 | $31.99 (Compare-at price: $40.00) | $40.00 |

## What happens at the end

With **Revert**, each variant gets back its own price and compare-at price from before the sale, whatever they were. Metascheduler saved them at the start.

If someone changed a variant's price during the sale, that variant is left alone and shows in **Needs you**, where you choose to restore the old price anyway or keep the new one. See [How reverting works](https://metascheduler.app/help/undo-and-drift.md).

> **Large sales**
>
> A change can list up to 250 items on Extra, and no limit on Unlimited. A price change over 500 variants runs as one Shopify bulk operation, so it shows as running until Shopify finishes.

## Good to know

- Prices are in your store's currency.
- A change that would take a price below zero isn't made for that variant, and the editor warns you.
- If a Shopify rollout turns on a discount at the same time, the editor warns that prices may clash. The buyer could get both.
- To keep the sale prices after the end, choose **Keep** under **At the end**.

## Related articles

- [Example: Black Friday with a rollout](https://metascheduler.app/help/black-friday.md): A whole campaign on one clock. Shopify Rollouts swaps the theme; Metascheduler swaps the menu, drops prices, changes the homepage and the refund policy, and puts it all back.
- [Change types](https://metascheduler.app/help/change-types.md): Every kind of change Metascheduler can schedule, what it does, how it reverts, and which plan has it.
- [Plans and limits](https://metascheduler.app/help/plans-and-limits.md): What each plan includes, what counts toward its limits, and what happens when you change plans.
