Billing cycle and prorations explained
Last updated: May 19, 2026
Billing cycle and prorations explained
Your billing cycle repeats every month (or year) starting on the day you subscribed — that's the anchor date. Any mid-cycle change (plan upgrade, extra seats, downgrade after cooldown) triggers a proration: Stripe credits the unused portion of the old setup and charges the new setup prorated for the remaining days.
Who is this for
Owners, admins, and finance who want to understand why an invoice has multiple line items, or who need to predict the cost of a mid-cycle change.
The billing cycle
When you start a subscription on, say, the 15th of March:
Anchor date: 15th
Monthly plan: every 15th of the month, Stripe charges the full plan fee
Annual plan: every March 15th, Stripe charges the annual fee
The anchor date stays constant even if you change plans mid-cycle — only the amount charged changes.
If the anchor day doesn't exist in a given month (e.g. 31st in February), Stripe shifts to the last day of that month.
What triggers a proration
Change | Prorated? | Effect |
|---|---|---|
Upgrade plan (Starter → Pro) | Yes | Credit unused old plan + charge new plan prorated for remaining days |
Downgrade plan (Pro → Starter, after cooldown) | Yes | Credit unused old plan + charge new plan prorated |
Add extra seats | Yes | Charge extra-seat fee prorated for remaining days |
Remove extra seats | Yes | Credit unused extra-seat fee for remaining days |
Switch monthly ↔ annual (same plan) | No | Takes effect at next anchor date — no prorations |
Update payment method | No | No charge |
Update billing address | No | Applies to next invoice |
Cancel | No | No prorated refund — you keep access until period end |
During the trial, all changes use Stripe's proration_behavior: 'none' — no prorations apply, trial credits are preserved.
The proration math
Stripe uses this formula:
proration = (new_unit_price - old_unit_price) × days_remaining / cycle_length
Example 1: Mid-cycle upgrade
You're on Starter at $X/month, subscribed on the 1st
On the 15th (day 15 of 30), you upgrade to Pro at $3X/month
Stripe credits the unused 15 days of Starter: $X × 15/30 = $0.5X
Stripe charges 15 days of Pro: $3X × 15/30 = $1.5X
Net immediate charge: $1.5X − $0.5X = $X
Next anchor date: full Pro fee = $3X
Example 2: Adding 2 extra seats mid-cycle
You're on day 20 of a 30-day cycle (10 days left)
Extra seat price: $19/seat/month
Charge: 2 seats × $19 × 10/30 = ~$12.67 today
Next anchor: full plan + (2 × $19) = monthly fee + $38 extra
Example 3: Annual plan upgrade mid-year
You're on annual Starter, anchor date Jan 1, today is July 1 (~183 days remaining of 365)
Upgrade to annual Pro
Credit Starter unused: starter_annual × 183/365
Charge Pro prorated: pro_annual × 183/365
Net charge today = difference (positive)
Anchor stays Jan 1
How prorations show on the invoice
Stripe generates an immediate invoice for mid-cycle changes (sometimes called a "true-up" invoice). It contains multiple line items:
Plan: Starter (unused — 15 days) −$X.50
Plan: Pro (new, 15 days) +$X.50
──────
Total +$X.00
The total is what you're actually charged (or credited if negative). Read top-to-bottom for the proration story.
Reading your next invoice
At the next anchor date, Stripe generates a regular invoice with:
The full plan fee for the cycle
Any add-ons (extra seats × number × price)
Taxes / VAT per billing address
Less any account credit balance from previous over-credits
Account credit balance
If a prorated change produces a credit larger than the charge, the difference becomes an account credit balance on Stripe. Future invoices automatically apply it first before charging your card. You can see your balance in the Stripe Customer Portal under Account credit.
Cycle reset events
These do NOT reset your billing cycle:
Plan changes
Add/remove seats
Update payment method or billing address
Pause/resume (Wevion doesn't currently expose pause; cancellation is the only "stop")
These DO create a new cycle:
Resubscribing after a full cancel + read-only window (new anchor = resubscribe date)
Switching from monthly to annual or vice versa (next anchor = first cycle of new interval)
Common questions
Why did I get charged $X today, the invoice says $Y for the cycle? Mid-cycle change. The cycle fee shows the "from now on" amount; you were charged the prorated delta today.
Why is the proration credit smaller than expected? Stripe rounds at the cent level. For small mid-cycle changes the rounding can feel disproportionate. Math holds in aggregate.
Can I move my anchor date? Not directly. To shift, cancel and resubscribe on the desired day (you'll lose prepaid days from current cycle).
Annual changes mid-year prorate over 365 days? Yes — same formula, cycle_length = 365.
Do prorations apply to extra-seat removals? Yes — Stripe credits unused seat fee, your next invoice is smaller or you get an account credit.
Related
Upgrade or downgrade your plan — when prorations apply
Add extra team member slots — extra-seat prorations
Find your invoices and receipts — see prorations as line items