Growth5 min readApril 2026

The Pricing Page Test That Generated $2.1M

We changed four things simultaneously. Conversion went from 2.3% to 3.8%. This is the full breakdown — variables tested, results, and what we'd do differently.


The pricing page was converting at 2.3%. Category benchmark was closer to 3.5%. That gap, across 80,000 monthly visitors, was worth roughly $2M in annual recurring revenue.

We had three options: reduce price, improve the product, or improve the page. We chose the page — not because it was the cheapest option (it was), but because we had a specific hypothesis that the page was doing things that actively undermined conversion, and we wanted to test that before touching price.

Here's the full breakdown.


What we were starting with

The existing pricing page had three plans, displayed left to right: Starter → Professional → Enterprise. The Starter plan led the visual hierarchy. The CTA was "Start Free Trial" on all three. Social proof was two generic testimonials at the bottom of the page. Price was displayed as monthly cost, with annual pricing one click away.

We had heatmap data showing that 73% of users who visited the page never scrolled past the plan cards. They were making a decision — or leaving — without seeing any social proof, any FAQ, any ROI framing. The top of the page was doing all the work, and it wasn't built for that job.


The four variables

We ran a multivariate test with four variables, each with two variants. This is the part that usually makes statisticians nervous — but we had enough traffic to run it cleanly, and we were disciplined about keeping variant combinations consistent.

Variable 1: Plan order

Control: Starter first (ascending price order, left to right)

Variant: Professional first (most popular plan in center, Starter on left, Enterprise on right)

The hypothesis: most visitors weren't coming to buy Starter. They were evaluating Professional. Leading with Starter was making them feel like they were being shown the budget option first, which primed them to anchor low.

Variable 2: Social proof

Control: two testimonials at the bottom of the page, generic

Variant: three testimonials embedded directly below the plan cards, each matched to a role (one from a PM, one from a founder, one from an engineering lead) and including a specific ROI claim ("reduced our sprint planning time by 40%")

The hypothesis: generic social proof is wallpaper. Role-specific, outcome-specific proof answers the question the visitor is already asking: "does this work for someone like me?"

Variable 3: Price display

Control: monthly price shown, annual as a toggle

Variant: annual price shown by default, with monthly displayed below as a strikethrough

The hypothesis: if the goal is annual contracts, show annual pricing. The current setup made annual feel like an upgrade you had to opt into.

Variable 4: CTA copy

Control: "Start Free Trial"

Variant: "See It With Your Data"

This one I was least confident about going in. "Start Free Trial" is what everyone uses. But we'd done user interviews and kept hearing a version of the same thing: people didn't want to start something — they wanted to evaluate something. "See It With Your Data" speaks directly to the evaluation mindset.


The results

We ran the test for four weeks across 80,000 visitors. Statistical significance hit 95% on all variants by week three.

Conversion moved from 2.3% to 3.8%. That's a 65% relative lift.

Breaking it down by contribution:

  • Plan order: ~15% of the lift
  • Social proof: ~20% of the lift
  • Price display: ~5% of the lift (smaller than expected)
  • CTA copy: ~60% of the lift

The CTA result surprised everyone, including me. But looking back, it makes sense. "Start Free Trial" is a commitment signal. "See It With Your Data" is an evaluation signal. We were selling to people in evaluation mode and asking them to commit. The new CTA met them where they were.

The $2.1M figure is annualized incremental ARR based on the conversion lift applied to our average contract value and 12-month trailing traffic.


How to run a multivariate test without breaking statistical validity

The concern with multivariate testing is interaction effects — if Variable A and Variable B both impact conversion, it's hard to attribute which one drove what. This is a real risk, and it's why most teams default to A/B.

We managed it by:

  1. Fixing our success metric before the test. Primary metric: trial signup conversion. Secondary metric: trial-to-paid conversion (measured 30 days post-signup). We did not look at any other metrics during the test.
  2. Running all combinations simultaneously. We didn't phase the variables. All 16 combinations (2^4) ran concurrently, so seasonality affected them all equally.
  3. Setting our sample size before launch. Based on our baseline conversion rate, expected effect size, and desired power, we needed ~75,000 visitors to reach 95% confidence. We had that in traffic terms before we started.
  4. Not peeking. We checked results once per week, on a fixed schedule. Early peeking inflates false positive rates. We didn't touch the test until week four.

What we'd do differently

Price display had less impact than expected — but I think that's because we changed two things at once: the default view AND the visual treatment (strikethrough pricing). I'd want to isolate those in a follow-up test.

I'd also test the page headline next. We didn't touch it in this test, and it's the highest-leverage surface on the page. The current headline is generic. Something that speaks specifically to the user's job-to-be-done could compound the gains we've already made.

Pricing pages are never done. This test gave us a better floor. The next test will find the next floor.