> For the complete documentation index, see [llms.txt](https://docs.shortcutco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shortcutco.com/readme/jobs-and-scheduling/bulk-price-changes.md).

# Bulk price changes

Raise (or change) prices across many customers at once, and notify everyone properly.

Use a bulk price change when it's time to update pricing for the new season — pick the jobs, set the new rates, and Shortcut updates every job and tells every customer for you. One price change can cover as many jobs as you like.

## When to use this

* Annual or seasonal price increases
* A cost change on one service (fuel, materials) you need to pass through
* Correcting pricing across many customers at once

## How it works

A price change has four steps — **Select**, **Define**, **Review**, and **Notice & send** — shown across the top of the page once you've picked the jobs.

{% stepper %}
{% step %}

### Select the jobs

Open [Jobs](https://shortcutco.com/jobs), click the **⋯** menu (top right), and choose **Change prices…**. You can also start from **Settings → Operations → Services**: the green note at the top has a **Change prices on Jobs** link.

Every matching job starts selected — uncheck any you want to leave out, then click **Change prices (N)**. See [Choosing the jobs](#choosing-the-jobs) below.
{% endstep %}

{% step %}

### Define the change

Pick a **Method**: **Percentage** (every rate moves by the same percent) or **Fixed amount** (an amount per visit for flat-rate jobs, per hour for hourly jobs, and per unit for per-sq-ft jobs). Optionally round the results under **Clean prices** and set a **Minimum increase**.

Then pick the date under **New rates start**. Visits on or after that date bill at the new rate; earlier visits stay at the old one. Shortcut warns you if that gives customers less than 30 days' notice.
{% endstep %}

{% step %}

### Review every customer

The Review step lists each customer with their current price, new price, and the difference. Nothing is applied yet — this is your chance to spot-check. You can't accidentally *lower* someone below their current price without Shortcut calling it out.
{% endstep %}

{% step %}

### Notice & send

Set up the **price-change notice**: an email showing the customer their services and new prices. You can edit the wording and preview exactly what they'll receive.
{% endstep %}

{% step %}

### Commit

Click **Commit and send N notices**. Shortcut updates the jobs, sends the notices, and takes you to a progress page.
{% endstep %}
{% endstepper %}

## Choosing the jobs

When you choose **Change prices…**, the Jobs list switches into price-change mode. A green banner sits above the list and a toolbar floats at the bottom.

* **Every matching job starts selected.** "Matching" means whatever your search and filters show.
* **Recurring jobs only, to start with.** Shortcut adds a recurring filter so one-off work isn't changed by accident. Remove that filter if you do want one-off jobs included.
* **Uncheck a job to leave it out.** Use search and filters to narrow the list first if that's quicker.
* **No size limit.** The count covers every matching job, not just the ones loaded on screen.
* **Completed and canceled jobs can't be included.** A row that mixes them says so, for example *1 of 2 jobs can be selected. Completed and canceled jobs can't be included in a price change.*

The toolbar at the bottom:

| Toolbar                                                         | What it does                                                                                            |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **All 240 recurring jobs selected**, or **236 of 240 selected** | How many jobs the price change will cover. **4 excluded** appears beside it once you've unchecked some. |
| **Select all 240**                                              | Selects every matching job again, including ones you unchecked.                                         |
| **Deselect all 240**                                            | Unchecks every matching job. You see this once the whole list has loaded.                               |
| **Deselect the 50 shown**                                       | Appears instead while only part of a long list has loaded. It unchecks just the jobs on screen.         |
| **Cancel**                                                      | Leaves price-change mode and puts the list's filters back the way they were before you started.         |
| **Change prices (236)**                                         | Saves a draft with these jobs and opens the **Define** step.                                            |

If you'd already ticked jobs to schedule them, Shortcut asks first — *Clear your scheduling selection?* — because a price change starts its own selection. Click **Clear and change prices** to carry on.

## Drafts

A price change saves as you go — the top bar shows **Draft saved** — so you don't have to finish in one sitting. Click **✕** (top left) to close it and come back later. To resume, open the Jobs **⋯** menu and choose **Price change history**; drafts are listed first.

To change which jobs a draft covers, click **Edit selection** on the **Define** step. You're back on the Jobs list with the draft's jobs and filters. Adjust the selection and click **Change prices (N)** to update the draft, or click **Back to draft** to return to its **Review** step without changing anything.

{% hint style="warning" %}
**A draft holds on to its customers.** Until you commit or discard it, those customers can't be part of another price change. In the other price change's **Review** step, their lines show **Blocked** — *Another price change already covers this customer.* Finish the draft, or discard it to free them up.
{% endhint %}

### Discard a draft

Click **Discard draft**. You'll find it in three places:

* the top right of the price-change steps (a bin icon on a phone)
* next to **Back to draft**, while you're editing a draft's selection
* on the draft's row in **Price change history**

Shortcut asks first: *Discard this draft?* No rates change, no notices go out, and its customers become available for a new price change. Click **Discard draft** to confirm, or **Keep draft**. The draft stays in **Price change history**, marked **Cancelled**.

## Notifying customers without email

If some customers have no usable email, the **Review** step says so — for example *3 customers have no usable email. Their rates still apply — download the mailing list to notify them by letter or phone.* Click **Download mailing list (CSV)** to get each of those customers' name, phone, mailing address, service, and current and new rate, so you can print letters or call them. The same download is on the price change's own page after you commit.

## After you commit

The price change gets its own page (open it from **Price change history**) where you can:

* **Watch progress** — see which customers are updated and notified
* **Amend** — fix a rate you got wrong; corrected customers get a corrected notice
* **Cancel with retractions** — undo the change; customers who were already notified get a retraction notice
* **See history** — every change, notice, and correction is kept for your records

## Changing one customer's price

You don't need the bulk flow for one customer. Edit their job as usual and use the **notify customer** option on the edit screen, so they get the same price-change notice.

{% hint style="info" %}
Price-change notices are separate from invoices. Customers see the new price on the notice first, then on invoices for work after the effective date.
{% endhint %}

<details>

<summary>Still stuck?</summary>

Email **<hello@shortcutco.com>** with a screenshot of the Review step and which customer looks wrong.

</details>
