The Seat Count You Picked on Pricing Disappears at Checkout: A P0/P1/P2 Audit
The Seat Count You Picked on Pricing Disappears at Checkout: A P0/P1/P2 Audit
Your pricing page did its job. The user picked Pro, 12 seats, annual billing. They clicked "Start free trial." Then your checkout shows "Pro Plan — $49/month." No seat count. No annual discount. No trial end date. That's not a minor mismatch. It's a trust gap that kills conversions at the exact moment money is about to change hands.
Why plan continuity beats "best practices" at checkout
Most checkout advice focuses on fields and friction. But for SaaS, the bigger problem is often continuity. The user configured a plan on your /pricing page. The checkout must confirm that configuration, not reset it.
- Users don't read checkout pages; they verify them. They scan for the number they saw on the pricing page.
- Nielsen's visibility-of-system-status heuristic applies here: the system must show what it's about to do.
- When the order summary doesn't match, users assume the worst: hidden fees, wrong plan, or a bait-and-switch.
The realistic flow we're auditing
A B2B SaaS with per-seat pricing, three tiers, and a monthly/annual toggle. The user:
- Lands on /pricing
- Selects Pro, 12 seats, annual billing
- Sees a total: $7,056/year
- Clicks "Start free trial"
- Signs up
- Lands on checkout
At checkout, the order summary reads: "Pro Plan — $49/month." The pay button says "Start trial." That's it.
P0: The order summary doesn't reflect what the user configured
This is the highest-priority fix. The user configured 12 seats and annual billing. The checkout shows a generic plan with no seat count and no billing period. This is a P0 because it directly contradicts the user's last action and creates doubt right before payment.
Fix: Show the configured plan as line items.
- "Pro Plan (annual) — $49/seat/month × 12 seats"
- "Billed annually: $7,056/year"
- "Trial ends March 14. First charge March 15."
This isn't decoration. It's confirmation. If you want to see how this looks in a prioritized audit, run a free audit on your signup flow — it'll flag the P0s first.
P1: The billing period toggle resets silently
If the user picked annual on pricing, checkout should default to annual. If it defaults to monthly, that's a P1. The user might not notice until the charge, and then you have a support ticket and a refund request.
Fix: Persist the toggle. If it must reset for technical reasons, show a banner: "You selected annual billing. We've kept that here." Never silently switch.
P2: The trial length and first charge date are buried
P2 because it's a clarity issue, not a blocker. But still: "Your trial ends March 14. First charge March 15: $7,056." Put it next to the pay button. Users who know when they'll be charged are less likely to churn before the charge and less likely to dispute it after.
Before/after: rewriting the order summary block
Before:
Pro Plan $49/month Start trial
After:
Pro Plan — Annual $49/seat/month × 12 seats $7,056 billed annually after trial Trial ends Mar 14. First charge Mar 15. [Change plan]
The "Change plan" link should go back to /pricing with the configuration preserved. That's guidance, not just navigation.
Mini playbook: 15-minute plan continuity audit
- Open your pricing page in one tab and your checkout in another.
- Configure the most complex plan: annual billing, max seats, any add-ons.
- Compare every number, label, and toggle between the two tabs.
- Check the order summary: does it list seats, billing period, and total?
- Check the pay button copy: does it say what happens next?
- Check the trial end date: is it visible before payment?
If you find a mismatch, fix the P0 first. Then the P1. Then the P2. Don't redesign the whole checkout.
Stop guessing which checkout change will move the needle. Start a free FlowAudit at /signup and get a prioritized P0/P1/P2 fix list for your own pricing-to-checkout flow in minutes.