How to prorate a mid-term upgrade on an annual SaaS contract
Charge the customer only for the days left in the current period: the annual price divided by the days in the period, times the days remaining, for the added seats or the price difference. In Bunny you amend the subscription with a quote, set the new quantity or plan and its effective date, and Bunny calculates the prorated amount, puts it on the quote, and invoices it when the quote is applied.
Before you start
- The customer has an active subscription in Bunny, created from an applied quote or the API.
- For a plan upgrade, the higher plan exists in your product catalog with a price list on the same billing period.
How to prorate an upgrade in Bunny
-
1
Start a change on the subscription
On the account's Subscriptions tab, select the subscription. Choose Change to add seats or change a price, or Change plan to move the customer to a higher plan. Either action opens a new quote for the amendment, so the change is priced, approved and signed like any other deal.
-
2
Enter the new quantity and the effective date
On the charge line's ... menu, choose Change quantity, pick the effective date and enter the new total (75 seats, not +25). Bunny adds the change as a blue line under the charge, prorated from the effective date to the end of the current period. That line is exactly what lands on the invoice.
-
3
For a plan upgrade, let Bunny credit the old plan
Change plan adds a credit for the unused part of the current plan and prices the new plan for the rest of the term, so the customer pays only the difference and the end date stays the same.
-
4
Review the prorated total and get it signed
The quote totals show the prorated amount before anything is billed. Any approval rules you have set (discount, amount, plan) run on the amendment too. Share the quote for acceptance or e-signature, or apply it directly if the change is already agreed.
-
5
Apply the quote
Applying updates the subscription and, for a change effective today or earlier, generates the invoice for the prorated amount right away. From the next billing period the customer is billed for the new quantity or plan in full, and the renewal starts from it.
Worked example: adding 25 seats on April 1
Acme is on the Growth plan: 50 seats at $600 per seat per year, on a contract that runs January 1 to December 31, 2026, billed annually. They paid $30,000 on January 1.
On April 1 they grow to 75 seats. The rep selects the subscription, chooses Change, and sets the quantity to 75 effective April 1.
- Days left in the period (April 1 to December 31): 275 of 365
- Added seats at the full annual price: 25 × $600 = $15,000
- Prorated charge: $15,000 × 275 / 365 = $11,301.37
Acme signs, the rep applies the quote, and Bunny invoices $11,301.37 plus any tax. On January 1, 2027 the renewal starts from 75 seats, or $45,000 for the year.
The same date, as a plan upgrade
Suppose Acme instead moves all 50 seats to the Enterprise plan at $840 per seat on April 1. The rep chooses Change plan:
- Credit for the unused Growth plan: $30,000 × 275 / 365 = −$22,602.74
- Enterprise for the rest of the term: $42,000 × 275 / 365 = $31,643.84
- Net amount due: $9,041.10
The end date stays December 31, so the renewal is a single quote at the Enterprise price.
More how-to guides
Step-by-step answers to the billing and quoting jobs B2B SaaS teams ask about most. See all how-to guides.
- How to manage subscriptions and billing from ChatGPT or Claude
- How to co-term an add-on to an existing subscription
- How to set approval rules for sales discounts
- How to bill custom enterprise deals when your self-serve billing runs on Stripe
- How to sync SaaS invoices and payments to QuickBooks Online or Xero
- How to turn a signed quote into a subscription and first invoice
- How to quote and bill a multi-year ramp deal with annual price uplifts
- How to get MRR, churn and NRR from your Stripe data
- How to bill seats and usage on one invoice
- How to invoice enterprise customers by wire or ACH and match payments to invoices
The RevOps expert your team never had.
- Type "send upgrade quotes to all starter plan accounts" — done in seconds
- Know which renewals need you this month, while there is still time to do something about it
- Find every overdue invoice in one question, instead of one account at a time
No credit card required. Cancel anytime.