Browse the knowledge base

Prorated billing when you upgrade mid-month

Upgrades take effect immediately and Stripe charges a prorated amount for the partial period until your next renewal. The math: credit for unused days at the old rate, charge for unused days at the new rate, net difference appears as one line. Downgrades take effect at period-end with no proration — you keep what you paid for.

When this article matters

You're considering upgrading mid-cycle and want to know what you'll be charged today vs at the next renewal. Or you upgraded and the Stripe receipt has a smaller-than-expected amount and you're trying to understand why. This article walks through the proration math, the downgrade-no-proration rule, the annual-cycle variant, and the edge cases.

For the broader plan-switching context (when to upgrade vs downgrade vs cancel), see switch or cancel your plan. For the annual-vs-monthly trade-off, see annual vs monthly billing.

Upgrade math — one worked example

Suppose:

  • You're on Starter (€29/mo), billing date is the 1st of the month.
  • Today is the 15th of the month — 15 days into your current period, 16 days remain.
  • You upgrade to Business (€49/mo).

Stripe calculates the prorated charge:

Component Math Amount
Unused Starter credit (days 15–30) €29 × 16/30 €15.47 credit
Business charge (days 15–30) €49 × 16/30 €26.13 charge
Net charged today €26.13 − €15.47 €10.66

On the 1st of next month, you start fresh on Business at the full €49/mo. From then on, billing is normal monthly cycles.

The exact numbers depend on the day of the month, the days-in-month, and the two prices. Stripe handles the math automatically — you see the exact figure on the confirmation screen before you commit. If you upgrade on the last day of the month, the proration approaches zero (nearly all of the period was already paid at the old rate); if you upgrade on day 1, the proration approaches the full upgrade delta.

What this means in practice

  • You can upgrade any time without "wasting" what's left of the current cycle. The unused-period credit ensures you don't pay twice for the same days.
  • You're charged a small partial amount immediately for the upgrade delta. It appears on your Stripe receipt as one line.
  • Stripe handles the math. You see the exact figure on the checkout-confirmation screen before clicking Confirm. No surprises after the fact.
  • The receipt is downloadable from Settings → Billing → Past invoices as a PDF, including the reverse-charge clause (for VAT-registered EU businesses outside Cyprus) and our company details.

The proration math is symmetric — if you upgraded by accident and want to revert, you can downgrade back. But the downgrade is not prorated (see below), so you'd stay on the higher tier for the rest of the period.

Downgrade — no proration

Downgrades work differently from upgrades:

  • Scheduled for the end of the current period — no immediate change.
  • You keep all current-tier features until the period ends.
  • At the end of the period, you switch to the new (lower) tier and the new amount is charged on the next renewal.
  • No partial refund for the unused portion of the higher tier — you've already paid for the full period, so we let you use it through to the end.

This asymmetry is intentional:

  • Avoids refund surprises. Some users would expect a "I paid for the month, I get a partial refund" experience that doesn't fit how monthly subscriptions normally work.
  • Keeps the math simple. Downgrades-with-proration would require Stripe to issue partial refunds mid-cycle, which complicates accounting and can introduce edge cases with chargebacks or failed refunds.
  • Encourages confident upgrade. Knowing that downgrades are period-end (not instant proration in your favour) reduces "I'll just downgrade for the cheap part of the month" gaming.

Two consequences of the no-proration-on-downgrade rule:

  • You can always downgrade today if you want — the change just won't take effect until the period-end.
  • If you upgraded by mistake and want immediate cost relief, the only path is to use the higher tier for the rest of the period (you've paid for it).

Annual subscriptions

Annual cycles use the same prorated logic but the math involves bigger numbers because the period is 365 days:

  • Annual Starter (€290/yr) → Annual Business (€490/yr) mid-cycle: prorated upgrade based on days remaining in the annual cycle. The charge can be substantial if you're early in the year. Example: 200 days remaining out of 365, the upgrade delta is (€490 − €290) × 200/365 = €109.59.
  • Monthly → Annual mid-cycle: Stripe credits the unused portion of your current month and charges the full annual amount minus that credit. Effective immediately, you're on the annual plan, paying upfront for the next 365 days.
  • Annual → Monthly is treated as a downgrade. Scheduled for the end of the annual cycle — you keep the annual benefits until then, then switch to monthly billing.

For unusual annual scenarios (large upgrade with many months remaining, change of billing cycle simultaneously with tier change), the exact math is shown on the confirmation screen before you confirm. If something looks wrong, write to [email protected] with [BILLING] prorated question and we'll walk through it.

What appears on the Stripe receipt

After the prorated upgrade processes:

  • One line for the upgrade: "Subscription change credit + new period charge" with the net amount.
  • VAT line (or reverse-charge clause if your VAT ID is set).
  • Total: the net you paid.

Two lines = simple. The math underneath is more complex but Stripe's receipt format collapses it. If you need the detailed breakdown for accounting purposes, the full Stripe-side line items are visible in the Stripe customer-portal (linked from Settings → Billing → Manage subscription on Stripe).

Edge cases

I upgraded yesterday by mistake — can I undo it? Downgrade back. The downgrade is scheduled for period-end; until then you stay on the higher tier you chose. We don't reverse the prorated charge (Stripe doesn't allow that easily), but you do get the higher-tier features for the period you paid for. Net result: a one-time small extra charge for the partial period at the higher rate, and the next renewal at the lower rate.

My credit card was declined for the prorated upgrade charge. Stripe retries. Meanwhile your upgrade is on hold; you stay on the current tier and see a banner in the app prompting you to update payment method. Fix the card in Settings → Billing → Payment method and retry the upgrade. If the original retry succeeded after you updated, you don't need to manually re-trigger — Stripe will catch up.

I want to skip the prorated charge and upgrade at next renewal. Currently there's no built-in scheduled-upgrade. Workaround: wait until the renewal date, then upgrade — the prorated math is then zero (full period charged at the new tier). Or upgrade today and accept the small partial charge for the rest of the cycle.

The prorated charge looks higher than I expected. Common reasons: (1) you're early in the period (more days to charge for at the new rate); (2) the new tier's rate is much higher than the old (Growth from Starter is a big jump); (3) you're on annual not monthly (the annual delta scales over many months). The confirmation screen always shows the exact figure pre-confirmation; if it persistently looks wrong, write to support.

I upgraded, used the higher tier, then downgraded. What about the partial charge I paid? You paid for what you used — the partial charge covered the days at the higher tier. The downgrade scheduled is for period-end; the days you've been at the higher tier so far are fully paid for. No refund expected or owed.

VAT changed between the proration calculation and my actual payment. Rare but possible if you crossed an EU member-state border mid-cycle. Stripe uses the VAT rate at the moment of charge, not the moment of plan-change. The receipt reflects the rate as of charge time.

I want to see the proration math before committing. The confirmation screen shows it. If you want more detail (e.g. the exact days-in-month used), open the Stripe customer portal from Settings → Billing → Manage on Stripe; Stripe's UI exposes the underlying line items in more detail than ours does.

Related

Didn't answer your question? Write to [email protected] · the AI chat in the bottom-right corner answers most common questions.