Annual billing turned checkout into a trust decision. A small business wasn't just choosing a plan. It was committing real cash upfront for a full year, with real downside if the product wasn't the right fit. Most checkout flows are built to accelerate commitment. This one had to earn it.
THE CONTEXT
Annual billing was new for CallRail. Before this, customers only had monthly plans. Adding annual subscriptions meant new customers would now encounter a pricing decision at checkout -- monthly or annual -- with real financial implications either way.
Annual costs less per month but requires paying upfront. Canceling mid-year means losing what you've already paid. For a small business owner making this decision without a finance team, that's not a small ask.
The business goal was clear: get customers onto annual plans. The design question was how to do that without rushing a decision that carried real risk for the user.
The problem
Before introducing annual plans, we audited the existing monthly checkout. It worked. It converted. But it wasn't built for a high-stakes financial decision.
Totals appeared at the end -- users moved through the entire flow without seeing the full cost until the payment step. Cross-sell products felt disconnected from the core product, so pricing felt arbitrary. Plan selection was hardcoded, meaning every user landed on the same default regardless of how they arrived.
Monthly billing forgave all of that. Annual didn't. Paying upfront for a full year made every gap in clarity a trust problem.

What I designed
The first decision was whether to layer annual billing onto the existing checkout or redesign it. Layering would have been faster, but it would have taken every existing gap -- deferred totals, disconnected cross-sell products, hardcoded defaults -- and made it worse in a higher-stakes decision environment.
I pushed for a redesign. The guiding principle was that new constraints needed to be visible before commitment, not after. The full cost updated in real time as users managed their cart.
The monthly/annual toggle showed the tradeoff instantly. Putting this at the top of the hierarchy meant users could see exactly how their total changed before touching anything else -- no mental math, no surprises at the end.
The cart reflected what users had actually trialed -- nothing unrequested. If a product hadn't been part of the trial, it didn't appear as a default selection.

And where pricing had exceptions -- for example, if a product they'd trialed could only be billed monthly -- those were impossible to miss before confirming.

what changed
Annual plans launched in October 2022, generating $2M ARR from CallRail’s first annual subscription capability.
Trial-to-customer conversion on annual plans exceeded 80% in the first quarter post-launch, compared to a 50-60% baseline for monthly. Billing support tickets dropped by approximately 30% in the same window.
Growth and transparency are not in conflict — if you design for both.
This will hide itself!
Annual billing turned checkout into a trust decision. A small business wasn't just choosing a plan. It was committing real cash upfront for a full year, with real downside if the product wasn't the right fit. Most checkout flows are built to accelerate commitment. This one had to earn it.
THE CONTEXT
Annual billing was new for CallRail. Before this, customers only had monthly plans. Adding annual subscriptions meant new customers would now encounter a pricing decision at checkout -- monthly or annual -- with real financial implications either way.
Annual costs less per month but requires paying upfront. Canceling mid-year means losing what you've already paid. For a small business owner making this decision without a finance team, that's not a small ask.
The business goal was clear: get customers onto annual plans. The design question was how to do that without rushing a decision that carried real risk for the user.
The problem
Before introducing annual plans, we audited the existing monthly checkout. It worked. It converted. But it wasn't built for a high-stakes financial decision.
Totals appeared at the end -- users moved through the entire flow without seeing the full cost until the payment step. Cross-sell products felt disconnected from the core product, so pricing felt arbitrary. Plan selection was hardcoded, meaning every user landed on the same default regardless of how they arrived.
Monthly billing forgave all of that. Annual didn't. Paying upfront for a full year made every gap in clarity a trust problem.

What I designed
The first decision was whether to layer annual billing onto the existing checkout or redesign it. Layering would have been faster, but it would have taken every existing gap -- deferred totals, disconnected cross-sell products, hardcoded defaults -- and made it worse in a higher-stakes decision environment.
I pushed for a redesign. The guiding principle was that new constraints needed to be visible before commitment, not after. The full cost updated in real time as users managed their cart.
The monthly/annual toggle showed the tradeoff instantly. Putting this at the top of the hierarchy meant users could see exactly how their total changed before touching anything else -- no mental math, no surprises at the end.
The cart reflected what users had actually trialed -- nothing unrequested. If a product hadn't been part of the trial, it didn't appear as a default selection.

And where pricing had exceptions -- for example, if a product they'd trialed could only be billed monthly -- those were impossible to miss before confirming.

what changed
Annual plans launched in October 2022, generating $2M ARR from CallRail’s first annual subscription capability.
Trial-to-customer conversion on annual plans exceeded 80% in the first quarter post-launch, compared to a 50-60% baseline for monthly. Billing support tickets dropped by approximately 30% in the same window.
Growth and transparency are not in conflict — if you design for both.
This will hide itself!
Annual billing turned checkout into a trust decision. A small business wasn't just choosing a plan. It was committing real cash upfront for a full year, with real downside if the product wasn't the right fit. Most checkout flows are built to accelerate commitment. This one had to earn it.
THE CONTEXT
Annual billing was new for CallRail. Before this, customers only had monthly plans. Adding annual subscriptions meant new customers would now encounter a pricing decision at checkout -- monthly or annual -- with real financial implications either way.
Annual costs less per month but requires paying upfront. Canceling mid-year means losing what you've already paid. For a small business owner making this decision without a finance team, that's not a small ask.
The business goal was clear: get customers onto annual plans. The design question was how to do that without rushing a decision that carried real risk for the user.
The problem
Before introducing annual plans, we audited the existing monthly checkout. It worked. It converted. But it wasn't built for a high-stakes financial decision.
Totals appeared at the end -- users moved through the entire flow without seeing the full cost until the payment step. Cross-sell products felt disconnected from the core product, so pricing felt arbitrary. Plan selection was hardcoded, meaning every user landed on the same default regardless of how they arrived.
Monthly billing forgave all of that. Annual didn't. Paying upfront for a full year made every gap in clarity a trust problem.

What I designed
The first decision was whether to layer annual billing onto the existing checkout or redesign it. Layering would have been faster, but it would have taken every existing gap -- deferred totals, disconnected cross-sell products, hardcoded defaults -- and made it worse in a higher-stakes decision environment.
I pushed for a redesign. The guiding principle was that new constraints needed to be visible before commitment, not after. The full cost updated in real time as users managed their cart.
The monthly/annual toggle showed the tradeoff instantly. Putting this at the top of the hierarchy meant users could see exactly how their total changed before touching anything else -- no mental math, no surprises at the end.
The cart reflected what users had actually trialed -- nothing unrequested. If a product hadn't been part of the trial, it didn't appear as a default selection.

And where pricing had exceptions -- for example, if a product they'd trialed could only be billed monthly -- those were impossible to miss before confirming.

what changed
Annual plans launched in October 2022, generating $2M ARR from CallRail’s first annual subscription capability.
Trial-to-customer conversion on annual plans exceeded 80% in the first quarter post-launch, compared to a 50-60% baseline for monthly. Billing support tickets dropped by approximately 30% in the same window.
Growth and transparency are not in conflict — if you design for both.
This will hide itself!