Skip to content
← Writing

Annual Pricing as a Discount

In January of 2021, I redesigned the Boords pricing page to reframe annual plans as discounts. Here's what happened.

In January of 2021, I redesigned the Boords pricing page to reframe annual plans as discounts. I borrowed the idea from Manuel Frigerio’s post on reframing discounts.

Annual Pricing Discount
Reframing the annual price as a discount

Here’s what happened:

Monthly vs Yearly

While absolute plan numbers increased, the percentage of annual vs monthly subscriptions did not (in fact they are generally lower). I take this to mean that for our audience, reframing annual plans as discounts doesn’t work, but the new pricing page layout is more effective at converting customers.

Here’s the old pricing page for reference. The plans run from low to high, whereas the new page uses high to low, which has been shown to boost conversion.

Pre-January Boords pricing page
Pre-January Boords pricing page

Of course, the pricing page doesn’t exist in isolation, and we’ve added several new product landing pages with new creative, which certainly has had an effect.

Creative from the new animatic tool landing page
Creative from the new animatic tool landing page

On a technical note, I was able to gather the annual vs monthly data using a Stripe sigma query:

with subscriptions_by_interval as (
  select
    prices.recurring_interval as BillingInterval,
    count(prices.recurring_interval) as Subscribers
  from
    subscriptions
    inner join prices on subscriptions.price_id = prices.id
    left join customers on subscriptions.customer_id = customers.id
  where
    prices.unit_amount > 0
    and month(subscriptions.created) = 1 -- Change month number
    and year(subscriptions.created) = 2021 -- Change year
  group by
    prices.recurring_interval
  order by
    prices.recurring_interval asc
)
select
  BillingInterval as "Billing Interval",
  Subscribers,
  Subscribers * 100 / t.s AS "% of total"
from
  subscriptions_by_interval
  CROSS JOIN (
    SELECT
      SUM(Subscribers) AS s
    FROM
      subscriptions_by_interval
  ) t

Even though the experiment didn’t boost the monthly to annual ratio, I’m delighted to achieve a higher-converting page overall.

My next step is to re-implement original monthly / annual toggle and see if that compounds the positive effect of the new pricing page design.