Stripe subscription schedule phases: trial then paid then volume tier
Builds a Stripe subscription schedule with trial, flat paid, and volume tier phases. Use when onboarding flows need staged pricing over time. Not for simple fixed-price subscriptions.
TL;DR
A subscription schedule with phases (trial, then flat paid, then volume-tiered) automates staged onboarding pricing without manual plan swaps. Define each phase with its start date, items, and pricing; set the trial phase with trial_end; put volume pricing on the final phase. Stripe transitions phases automatically and invoices accordingly. Preview the schedule's invoices, then release it. The schedule is the source of truth for the whole onboarding arc, so sales and support stop hand-editing subscriptions mid-flight.
The query
Stripe subscription schedule phases: trial then paid then volume tierUse this when
- Onboarding pricing that moves trial to paid to volume tiers automatically
- Building staged subscription pricing in Stripe
- Automating plan upgrades on a fixed timeline
Not for
- Simple flat subscriptions (a schedule is overkill)
- Usage-based pricing with no phases (use meters directly)
Steps
- Create the schedule from the subscription with three phases: trial, flat paid, volume tier.
Expected output: The schedule holds all three phases with start dates.
- Set trial_end on phase one and the flat price items on phase two.
Expected output: Trial converts to the paid phase automatically.
- Attach volume-tiered price items to phase three with the correct tiers.
Expected output: High-usage months bill on the volume tiers.
- Preview invoices at each phase boundary with test clocks or the upcoming endpoint.
Expected output: Each transition produces the expected invoice.
- Release the schedule and monitor the first phase transition in production.
Expected output: The arc runs without manual intervention.
Variant phrasings
Stripe subscription schedule phases trial then paid
Stripe staged pricing onboarding schedule
subscription schedule volume tier phase Stripe
Root cause
Phases turn a timeline into billing configuration: each phase is a complete subscription state with a start date, so Stripe can transition without your code waking up. The alternative, cron-driven plan swaps, is where staged pricing usually breaks.
Edge cases
- Phase transitions do not prorate by default the way plan swaps do; verify the boundary invoices
- End behavior matters: set what happens when the schedule completes (release vs cancel)
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_BJH99tnpa1H2ajflOB3gdw