---
title: How do I increase prices at my school?
description: "Raising tuition in Opus1 is two doors: update payment plans so new enrollments pay the new rate, and subscriptions so current families do too."
---

[Skip to content](https://kb.opus1.io/how-to-increase-prices-at-my-school#main-content)

English

Show submenu for translations

![Opus1-3-icon-color-1.png\]](https://kb.opus1.io/hs-fs/hubfs/Opus1-3-icon-color-1.png?height=50&name=Opus1-3-icon-color-1.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- Go to opus1.io

 Go to opus1.io

 Hello. How can we help you?

- There are no suggestions because the search field is empty.

1. [opus1io Knowledge Base](https://kb.opus1.io/?hsLang=en)
2. [Services](https://kb.opus1.io/services?hsLang=en)
3. [Payment Plans](https://kb.opus1.io/services?hsLang=en#payment-plans)

# How do I increase prices at my school?

## A tuition increase is a who pays the new rate decision. Update the payment plan on the service so the next family to enroll is quoted the new amount. Update subscriptions if current families should pay it too. Plan edits never move people who are already enrolled — that is grandfathering, and it is deliberate.

**Last updated:** September 14, 2026  
**Applies to:** Owner / Manager (payment plans); Owner / Manager / Staff (subscriptions) **PLUS Feature:** No   
**Plan:** All

### **Table of Contents**

1. [Why you'd change prices this way](https://kb.opus1.io/how-to-increase-prices-at-my-school#why-youd-change-prices-this-way)
2. [If you're still deciding whether to raise prices](https://kb.opus1.io/how-to-increase-prices-at-my-school#if-youre-still-deciding-whether-to-raise-prices)
3. [Who can increase prices](https://kb.opus1.io/how-to-increase-prices-at-my-school#who-can-increase-prices)
4. [Before you start](https://kb.opus1.io/how-to-increase-prices-at-my-school#before-you-start)
5. [Pick the right door](https://kb.opus1.io/how-to-increase-prices-at-my-school#pick-the-right-door)
6. [New enrollments: raise the payment plan](https://kb.opus1.io/how-to-increase-prices-at-my-school#new-enrollments-raise-the-payment-plan)
7. [Current families: raise their subscriptions](https://kb.opus1.io/how-to-increase-prices-at-my-school#current-families-raise-their-subscriptions)
8. [One family](https://kb.opus1.io/how-to-increase-prices-at-my-school#one-family)
9. [What happens to invoices](https://kb.opus1.io/how-to-increase-prices-at-my-school#what-happens-to-invoices)
10. [What these doors do not do](https://kb.opus1.io/how-to-increase-prices-at-my-school#what-these-doors-do-not-do)
11. [FAQ](https://kb.opus1.io/how-to-increase-prices-at-my-school#faq)
12. [Related Articles](https://kb.opus1.io/how-to-increase-prices-at-my-school#related-articles)

---

#### **Why you'd change prices**

Fall is the usual moment for a tuition increase: new school year, new rate sheet, families already on the books and families not enrolled yet.

Opus1 keeps those two groups on **two records** so you can treat them differently.

| Record | What it is | Who it bills |
| --- | --- | --- |
| **Payment plan** on the service | The template at checkout | The **next** enrollment — self-booking, a trial conversion, a sibling you add in September |
| **Subscription** on the student | A copy of that plan, taken at enrollment | **This** family, until you change it |

That split is the point. You can raise what the website quotes without touching loyal families. You can raise everyone. You can raise 60-minute lessons and leave 30-minute where they are.

The mistake this article exists to prevent: editing the plan, seeing the new number on the service, and assuming October invoices for current students will follow. They will not. See [Will the price of my clients' subscriptions increase if I update the price of my services' payment plans?](https://kb.opus1.io/will-the-price-of-my-clients-subscriptions-increase-if-i-update-the-price-of-my-services-payment-plans?hsLang=en).

---

#### **If you're still deciding whether to raise prices**

This page is how to make the change in Opus1 once you have a rate sheet. If you are still deciding **whether** to raise prices, and how to talk to families about it, watch this first.

We’ve partnered with music school expert and entrepreneur **David Martin** on [How to Raise Your Music School Prices (Without Losing Students)](https://www.youtube.com/watch?v=40hPkoxwKOY).

When you are ready to change the numbers, pick a door below.

---

#### **Who can increase prices**

Payment plans live on the service. Subscriptions live on the student. Those are different permissions.

| Persona | Edit payment plans on a service | Batch update payment plans | Change one subscription | Batch update subscriptions |
| --- | --- | --- | --- | --- |
| **Owner** | Yes | Yes | Yes | Yes |
| **Manager** | Yes | Yes | Yes | Yes |
| **Staff** | No | No | Yes | Yes |
| **Limited Staff** | No | No | No | No |

A fall increase that covers new *and* current students is an Owner or Manager job for the plan door, then Staff can help on subscriptions if you want the front desk in that pass.

---

#### **Before you start**

Decide the policy **before** you open batch update. The software will do whichever door you walk through. It will not infer “raise everyone in September.”

Write down:

1. **The new rates**, by offering — 30 / 45 / 60-minute private lessons, group classes at the same price point, rentals, membership dues.
2. **Who pays them.** New enrollments only, current families too, or a mix (for example new rate for 60-minute, grandfather 30-minute).
3. **When current families should see it.** Open invoices can recalculate when you change a subscription. Closed invoices stay as they were when paid. If October is already billed and paid, the new rate shows on the next invoice you generate — see *What happens to invoices* below.
4. **Flat vs variable.** Flat monthly plans have two money fields. If you change only the monthly amount, holds and partial months can still use the old per-visit rate.

You do not need a scheduled “price change date” in Opus1. There is not one. You run the update when you want the new number to apply.

---

#### **Pick the right door**

| You want… | Walk through | Why that door |
| --- | --- | --- |
| Self-booking and front-desk enrollments to quote the new amount | **Payment plans** | Checkout reads the plan. Current families are not on that template anymore. |
| Families already taking lessons to pay the new amount | **Subscriptions** | That is the record that writes invoices. |
| Both — a true school-wide increase | **Plans first, then subscriptions** | New people get the new quote. Current people get the new bill. Same numbers on both doors, or they drift. |
| One family who is an exception | **That subscription** | Do not batch a special case into a 200-row update. |
| A loyal-student grandfather, new families at the new rate | **Plans only** | Leave subscriptions alone. That is the design. |

Do the **plan** door first whenever current families are in scope. If you raise subscriptions and forget the plan, the next self-booking still enrolls at last year's price.

---

#### **New enrollments: raise the payment plan**

**Why this door:** this is what the next family sees. Self-booking, a September trial that converts, a sibling you enroll at the desk. If the plan still says $140, Opus1 will keep selling $140.

**Where:** **Settings** → **Services**

Work in **groups that share a price**, not one service at a time unless you only have a handful.

Typical groups:

- 30-minute private lessons
- 45-minute private lessons
- 60-minute private lessons
- Group classes that bill the same amount

##### **How to do it**

1. Filter the service list to one group — by **name** (for example `30`) or by **service tag** (for example private lesson + guitar). Only services of the **same type** can be batched together (appointments with appointments, group classes with group classes).
2. Optionally check individual rows in list view if the tag is broader than the group you meant.
3. Click **Batch Update**.
4. Under **Attribute(s) to batch update**, choose **Payment plans**.
5. Under **Payment plan settings to batch update**, choose **How much should be charged?**
6. Use **Price update patterns**: **From** the current amount, **To** the new amount. Add another From/To row if that group has more than one current price (for example $140 and $145 both becoming $155).
7. Optional: **Payment plan name filter** if the service has several plans and only the monthly membership should move.
8. Confirm the preview of what will change, then **Batch Update**.

Flat-rate monthly plans: also batch **How much should be charged per visit for partial months?** to the new per-lesson equivalent. New enrollments that start mid-month, and later holds, use that field. Leaving it at last year's per-visit amount undercharges those windows.

One service, not a group: open it with **Update**, go to the **Payment** tab, edit the plan, change **How much should be charged?**, save the plan, then **Update Service**.

Click-by-click for the batch modal, including attributes that are not price, is in [How do I update multiple services at the same time?](https://kb.opus1.io/batch-update-for-services?hsLang=en). Payment-plan batching is the **Payment plans** attribute on that same modal.

**After this door:** new enrollments quote the new rate. Current subscriptions are unchanged. That is correct.

---

#### **Current families: raise their subscriptions**

**Why this door:** invoices come from the subscription, not from later edits to the plan. If current families should pay the new rate, you have to change **their** copy.

**Where:** **Reporting** → **Subscriptions**

Batch update **sets one new amount on every subscription currently displayed**. It does not map From $140 To $155 the way payment plans do. If $140 and $160 rows are both on the screen and you enter $155, both become $155.

That is why you filter tightly, click **Load Everything**, and work **highest price to lowest**:

- 60-minute lessons at the current 60-minute rate
- then 45-minute
- then 30-minute
- then group classes at a shared price point

Highest first keeps a $160 row from sitting in a $140 batch.

##### **How to do it**

1. Go to **Reporting** → **Subscriptions**.
2. Filter to one group. Useful filters for a price increase: **status** (Active — and Pending if you have enrollments that have not started), **payment plan name**, **base price** (the amount before discounts), **location**.
3. Click **Load Everything**. If you skip this, only the first page (100 subscriptions) is updated. The rest stay on the old rate.
4. Spot-check the list. Export CSV if you want a before-picture.
5. Click **Batch Update**.
6. Choose **How much should be charged?** Enter the **new** amount.
7. For **flat-rate** subscriptions, also choose **How much should be charged per visit for partial months?** and enter the new per-visit amount. Holds that return mid-month, and other partial-month math, use this field. If you skip it, the monthly rate goes up and the hold window can still bill last year's lesson price.
8. Confirm. Batch update is **not reversible**. Only **Active** and **Pending** subscriptions in the list are updated. Ended and on-hold rows are skipped.

Recurring discounts on a subscription **stay**. You are changing the base price; a 10% sibling or scholarship discount still applies to the new base. See [How do I add a recurring discount to a subscription?](https://kb.opus1.io/how-do-i-add-a-recurring-discount-to-a-subscription?hsLang=en).

Full attribute list, warnings, and the video walkthrough: [How do I batch update my clients' subscriptions?](https://kb.opus1.io/batch-update-subscriptions?hsLang=en). Filters: [Reporting: Subscriptions](https://kb.opus1.io/reporting-subscriptions?hsLang=en).

**After this door:** those families' subscriptions show the new amount. Open invoices that can be recalculated will be. The payment plan on the service is still whatever you left it. If you skipped the plan door, the next new enrollment is still last year's price.

---

#### **One family**

**Why this door:** a single exception — a teacher’s child, a family you promised last year's rate, someone who should move early. Do not put them in the school-wide batch.

**Where:** the client's profile → **Subscriptions**

1. Click **Update** on that subscription.
2. In the plan section, change **How much should be charged?**
3. For flat rate, change **How much should be charged per visit for partial months?** as well.
4. **Update** at the bottom of the subscription.

Open invoices for that subscription recalculate when they can. Same rule as batch.

---

#### **What happens to invoices**

Changing a **payment plan** does not rewrite invoices. Those families were never going to bill from that template again.

Changing a **subscription** (one person or batch):

| Invoice | What happens |
| --- | --- |
| **Open** (not yet paid, or not fully paid) | Recalculated to the new subscription amount when Opus1 can do it |
| **Closed** (already paid) | Unchanged. You do not rewrite history |
| **Not created yet** | The next invoice is generated from the new subscription amount |

There is no separate “generate invoices for the new rate” step. The subscription writes the next invoice when the cycle advances — usually when the current invoice is paid. See [How are invoices generated from subscriptions?](https://kb.opus1.io/how-are-invoices-generated-from-subscriptions?hsLang=en).

If September is already paid and you raise prices on September 15, families see the new amount on **October's** invoice, not as a surprise rewrite of September.

---

#### **What these doors do not do**

- **Move current families when you only edit the plan.** That is grandfathering. Use the subscription door if that was not the intent.
- **Schedule a raise for September 1.** You run the update when you want the new number. There is no future-dated price.
- **Map From/To on subscriptions.** Payment-plan batching can say “$140 becomes $155.” Subscription batching sets **one** new amount for everyone on the screen. Filter first.
- **Update ended or on-hold subscriptions in a batch.** Only Active and Pending.
- **Clear discounts.** Base price changes; recurring discounts remain.
- **Rewrite paid invoices.**
- **Change teacher pay.** Staff rates are a different setting. This article is what families are charged.
- **Replace a prepaid pack that was already sold.** A one-time pack that already charged is not an ongoing subscription. Updating the plan changes the **next** pack you sell.

---

#### **FAQ**

**I updated the service. Why are current families still at the old rate?** The plan is a template for new enrollments. Current billing is the subscription. Walk the *Current families: raise their subscriptions* door below, or see [Will the price of my clients' subscriptions increase if I update the price of my services' payment plans?](https://kb.opus1.io/will-the-price-of-my-clients-subscriptions-increase-if-i-update-the-price-of-my-services-payment-plans?hsLang=en).

**Should I grandfather current students at their old tuition?** That is a school policy, not a software setting. To grandfather: update **payment plans only**. To raise everyone: plans, then subscriptions.

**Why did only some subscriptions change?** Usually **Load Everything** was not clicked, so only the first 100 updated. Or the list mixed statuses — ended and on-hold are skipped.

**Do I have to change the per-visit field on a flat-rate plan?** If you use visit-based first-month proration or subscription holds, yes. That field is the partial-month rate. Raise the monthly amount and leave per-visit alone, and holds can still bill last year's lesson price.

**Does the family get an automatic “your rate is going up” email?** Not from this update. Tell them how you usually tell them — email, terms, a front-desk conversation. **David Martin’s** [How to Raise Your Music School Prices (Without Losing Students)](https://www.youtube.com/watch?v=40hPkoxwKOY) covers how to say it. If you are also rewriting terms, that is a different pair of batch updates: [How do I update terms and conditions and prompt clients to re-accept?](https://kb.opus1.io/how-do-i-update-terms-and-conditions-and-prompt-clients-to-re-accept?hsLang=en).

#### **Related Articles**

- [Will the price of my clients' subscriptions increase if I update the price of my services' payment plans?](https://kb.opus1.io/will-the-price-of-my-clients-subscriptions-increase-if-i-update-the-price-of-my-services-payment-plans?hsLang=en) — why the plan door does not move current families
- [How do I update multiple services at the same time?](https://kb.opus1.io/batch-update-for-services?hsLang=en) — service / payment-plan batch modal
- [How do I batch update my clients' subscriptions?](https://kb.opus1.io/batch-update-subscriptions?hsLang=en) — subscription batch attributes and warnings
- [Reporting: Subscriptions](https://kb.opus1.io/reporting-subscriptions?hsLang=en) — filters, Load Everything, export
- [How are invoices generated from subscriptions?](https://kb.opus1.io/how-are-invoices-generated-from-subscriptions?hsLang=en) — what a price change does (and does not) do to invoices
- [Setting up payment plans for your appointment-based services](https://kb.opus1.io/setting-up-payment-plans-for-your-appointment-based-services?hsLang=en) — flat vs variable, per-visit, proration
- [How do I add a recurring discount to a subscription?](https://kb.opus1.io/how-do-i-add-a-recurring-discount-to-a-subscription?hsLang=en)
- [How do I update terms and conditions and prompt clients to re-accept?](https://kb.opus1.io/how-do-i-update-terms-and-conditions-and-prompt-clients-to-re-accept?hsLang=en)

- [Account & Troubleshooting](https://kb.opus1.io/account-troubleshooting?hsLang=en#main-content)

    - [General](https://kb.opus1.io/account-troubleshooting?hsLang=en#general)
    - [Login & Access](https://kb.opus1.io/account-troubleshooting?hsLang=en#login-access)
    - [Release Notes](https://kb.opus1.io/account-troubleshooting?hsLang=en#release-notes)
- [Business](https://kb.opus1.io/business?hsLang=en#main-content)

    - [General](https://kb.opus1.io/business?hsLang=en#general)
    - [Business Profile & Billing](https://kb.opus1.io/business?hsLang=en#business-profile-billing)
    - [Client Data & Forms](https://kb.opus1.io/business?hsLang=en#client-data-forms)
    - [Integrations](https://kb.opus1.io/business?hsLang=en#integrations)
    - [Locations & Rooms](https://kb.opus1.io/business?hsLang=en#locations-rooms)
    - [Self-Booking Links](https://kb.opus1.io/business?hsLang=en#self-booking-links)
    - [Terms & Conditions](https://kb.opus1.io/business?hsLang=en#terms-conditions)
- [Calendar & Scheduling](https://kb.opus1.io/calendar-scheduling?hsLang=en#main-content)

    - [General](https://kb.opus1.io/calendar-scheduling?hsLang=en#general)
    - [Batch Schedule Actions](https://kb.opus1.io/calendar-scheduling?hsLang=en#batch-schedule-actions)
    - [Calendar Notes & Display](https://kb.opus1.io/calendar-scheduling?hsLang=en#calendar-notes-display)
    - [Enrollment](https://kb.opus1.io/calendar-scheduling?hsLang=en#enrollment)
    - [Recurring & Rescheduling](https://kb.opus1.io/calendar-scheduling?hsLang=en#recurring-rescheduling)
    - [Substitutes](https://kb.opus1.io/calendar-scheduling?hsLang=en#substitutes)
- [Clients](https://kb.opus1.io/clients?hsLang=en#main-content)

    - [Account Managers & Dependents](https://kb.opus1.io/clients?hsLang=en#account-managers-dependents)
    - [Client Experience](https://kb.opus1.io/clients?hsLang=en#client-experience)
    - [Client Records](https://kb.opus1.io/clients?hsLang=en#client-records)
    - [Credits](https://kb.opus1.io/clients?hsLang=en#credits)
    - [Gift Cards](https://kb.opus1.io/clients?hsLang=en#gift-cards)
    - [Invoices](https://kb.opus1.io/clients?hsLang=en#invoices)
    - [Payments & Auto-Pay](https://kb.opus1.io/clients?hsLang=en#payments-auto-pay)
    - [Subscriptions](https://kb.opus1.io/clients?hsLang=en#subscriptions)
    - [Waitlist Notifications](https://kb.opus1.io/clients?hsLang=en#waitlist-notifications)
- [Communication](https://kb.opus1.io/communication?hsLang=en#main-content)

    - [Email & Notifications](https://kb.opus1.io/communication?hsLang=en#email-notifications)
    - [SMS](https://kb.opus1.io/communication?hsLang=en#sms)
    - [Voice](https://kb.opus1.io/communication?hsLang=en#voice)
- [Grow Your Music School](https://kb.opus1.io/grow-your-music-school?hsLang=en#main-content)

    - [Convert Prospects](https://kb.opus1.io/grow-your-music-school?hsLang=en#convert-prospects)
    - [Email Campaigns](https://kb.opus1.io/grow-your-music-school?hsLang=en#email-campaigns)
    - [Get Found & Capture Leads](https://kb.opus1.io/grow-your-music-school?hsLang=en#get-found-capture-leads)
    - [Reviews & Reputation](https://kb.opus1.io/grow-your-music-school?hsLang=en#reviews-reputation)
- [Payment Processing](https://kb.opus1.io/payment-processing?hsLang=en#main-content)

    - [General](https://kb.opus1.io/payment-processing?hsLang=en#general)
    - [Opus1 Payments (Stripe)](https://kb.opus1.io/payment-processing?hsLang=en#opus1-payments-stripe)
    - [Clover Connect (FiServ / Cardpointe)](https://kb.opus1.io/payment-processing?hsLang=en#clover-connect-fiserv-cardpointe)
- [Reporting](https://kb.opus1.io/reporting?hsLang=en#main-content)

    - [Attendance](https://kb.opus1.io/reporting?hsLang=en#attendance)
    - [Credits](https://kb.opus1.io/reporting?hsLang=en#credits)
    - [Invoices](https://kb.opus1.io/reporting?hsLang=en#invoices)
    - [Subscriptions](https://kb.opus1.io/reporting?hsLang=en#subscriptions)
    - [Transactions](https://kb.opus1.io/reporting?hsLang=en#transactions)
    - [Data Exports](https://kb.opus1.io/reporting?hsLang=en#data-exports)
- [Services](https://kb.opus1.io/services?hsLang=en#main-content)

    - [Appointments](https://kb.opus1.io/services?hsLang=en#appointments)
    - [Building Services](https://kb.opus1.io/services?hsLang=en#building-services)
    - [Cancellation](https://kb.opus1.io/services?hsLang=en#cancellation)
    - [Events](https://kb.opus1.io/services?hsLang=en#events)
    - [Optimization & Conversion](https://kb.opus1.io/services?hsLang=en#optimization-conversion)
    - [Payment Plans](https://kb.opus1.io/services?hsLang=en#payment-plans)
    - [Group Classes](https://kb.opus1.io/services?hsLang=en#group-classes)
    - [Subscription-Only](https://kb.opus1.io/services?hsLang=en#subscription-only)
- [Staff](https://kb.opus1.io/staff?hsLang=en#main-content)

    - [Availability & Self-Booking](https://kb.opus1.io/staff?hsLang=en#availability-self-booking)
    - [Calendar Sync](https://kb.opus1.io/staff?hsLang=en#calendar-sync)
    - [Onboarding & Offboarding](https://kb.opus1.io/staff?hsLang=en#onboarding-offboarding)
    - [Payroll & Compensation](https://kb.opus1.io/staff?hsLang=en#payroll-compensation)
    - [Roles & Permissions](https://kb.opus1.io/staff?hsLang=en#roles-permissions)
    - [Teacher Tools & Access](https://kb.opus1.io/staff?hsLang=en#teacher-tools-access)
    - [Time-off](https://kb.opus1.io/staff?hsLang=en#time-off)
- [Stats](https://kb.opus1.io/stats?hsLang=en#main-content)

    - [Conversions](https://kb.opus1.io/stats?hsLang=en#conversions)
    - [Client Metrics](https://kb.opus1.io/stats?hsLang=en#client-metrics)
    - [Dashboard](https://kb.opus1.io/stats?hsLang=en#dashboard)
    - [Group Class Enrollment](https://kb.opus1.io/stats?hsLang=en#group-class-enrollment)
    - [Today](https://kb.opus1.io/stats?hsLang=en#today)
    - [Utilization](https://kb.opus1.io/stats?hsLang=en#utilization)

[![Chill listening crop-3](https://kb.opus1.io/hs-fs/hubfs/Opus1-3-icon-color-2.png?width=35&height=24&name=Opus1-3-icon-color-2.png "Chill listening crop-3")](http://opus1.io)

<https://www.facebook.com/opus1.io/>

Copyright © 2025, Opus1.io