Short answer
Stripe has no percentage escalator. To apply an annual uplift, work out each customer's new amount, create a price for each unique amount, and move each subscription to its new price with no prorations, effective at the contract anniversary or renewal. Do it as one bulk job a year instead of dozens of manual edits.
The Change Subscription Price App turns this into one job a year instead of dozens of hand edits.
Change Subscription Price App — by FinriteUpdate a price across all your Stripe subscriptions from the dashboard, in bulk. Built by former Stripe Billing product managers and engineers.
View on Stripe MarketplaceWhy uplifts get skipped
Annual escalators (a fixed 3–7%, or tied to CPI) are standard in B2B SaaS contracts. But Stripe won't apply them, and nothing tells finance they're due. Many companies simply don't enforce them, and that revenue compounds away. With a 5% clause on a $1M ARR base, skipping one year costs $50k that year, and the gap carries into every year after.
Step 1: Build the uplift table
Export active subscriptions and add the columns you'll need:
| Column | Why |
|---|---|
| Current unit amount | The base the percentage applies to. Use the price actually billed, not your list price. |
| Uplift % | From the contract. Not every customer has the same clause. |
| New amount (rounded) | Apply one rounding rule to everyone. |
| Effective date | Contract anniversary or next renewal. |
| Notice sent? | Many contracts require written notice even for an agreed escalator. |
Step 2: Create the new prices
Customers who share a list price can share one new price. Negotiated amounts usually need one price per customer. Keep them on the same product and name them clearly, for example Platform — Annual — 2027 uplift, so the price list stays readable.
Step 3: Time it
For annual-billed contracts, update the subscription before the anniversary with proration_behavior=none, and the renewal invoice bills the new amount. For monthly-billed contracts with an annual clause, update on the anniversary so the first invoice after it carries the uplift. If anniversaries are spread through the year, group them into monthly batches instead of running one-off changes. Scheduling guide here.
Step 4: Apply in bulk
Swap each subscription item to its new price. By script, that's one API call per subscription (see the script guide). With the Change Subscription Price App, you select the subscriptions and new prices in the Dashboard, then run the job now or schedule it for the anniversary.
Why run uplifts with the Change Subscription Price App
- One job, many subscriptions. Select the subscriptions, set the new prices, and run it.
- Timed to the anniversary. Schedule the job for the contract date instead of remembering to do it.
- Correct for per-seat contracts. Quantities are kept, so a 40-seat customer stays at 40 seats.
- No prorations, so there are no odd partial charges to explain to a customer's finance team.
- An audit trail for finance. A CSV of every subscription the uplift touched.
Change Subscription Price App — by FinriteUpdate a price across all your Stripe subscriptions from the dashboard, in bulk. Built by former Stripe Billing product managers and engineers.
View on Stripe MarketplaceSubscription schedules
Contract customers are often on subscription schedules (ramps, multi-year phases). A direct price update on those can be overwritten when the next phase starts, and Finrite's app doesn't support them yet. For those customers, add the uplift as a new schedule phase instead.
Frequently asked questions
Can Stripe apply a percentage price increase automatically every year?
No. Stripe has no built-in escalator, so each increase means a new price and a subscription update. You can pre-build it per customer with subscription schedule phases, or run it once a year as a bulk job.
How should I round a percentage uplift?
Pick a rule and apply it every time. Common choices are rounding to the nearest whole currency unit, or to the nearest cent for invoices that are checked against the contract. Stripe prices are stored in the smallest currency unit, so $1,030.00 is unit_amount 103000.
Do I need a separate Stripe price for every customer?
If customers start from different negotiated amounts, then after the uplift they're on different amounts too, so yes, each unique amount needs its own price. Customers on the same list price can share one new price.
Can I apply the annual increase with the Finrite app?
Yes. Contractual annual increases are one of its most common uses: pick the subscriptions, set the new prices, and run the change now or on a scheduled date. Updates apply without prorations, and subscriptions managed by subscription schedules aren't supported.
Related guides
Run this year's uplift in one job
Pick the subscriptions, set the new prices, and schedule the increase for the anniversary date, from inside your Stripe Dashboard.
Install from the Stripe App MarketplaceRead the app user guide first · Questions? contact@finrite.co