CS-04 · Measuring Design Impact

Case study ·

CS-04

·

Recurly

Design impact as a time series: task success from 49% to 100%

Recurly’s first repeatable usability benchmark: six revenue tasks, one script, every release. Design quality became a time series, and the practice outlived me.

Cancel subscription

49→100%

Run 1

49%

Run 2

100%

Add subscription

29→91%

Run 1

29%

Run 2

91%

Issue refund

20→87%

Run 1

20%

Run 2

87%

fig. 1

Task success after two runs: same six tasks, same script, one month apart. Three of the six shown; Add Charge Invoice still lagged, and it stays on the chart on purpose.

Benchmark · runs 1–2

Org

Recurly

Years

2017–19

Type

Team practice

Status

Adopted as a release ritual

Org

Recurly

Years

2017–19

Type

Team practice

Status

Adopted as a release ritual

Org

Recurly

Years

2017–19

Type

Team practice

Status

Adopted as a release ritual

My role

Design lead · Recurly product design

Scope

The benchmark, the test scripts, and the measurement practice

Team

1 engineer

Leadership

Stood up the org’s first usability-measurement practice and ran it every release

Shared or outside my scope

Engineering built the fixes; product owned release scope

My role

Design lead · Recurly product design

Scope

The benchmark, the test scripts, and the measurement practice

Team

1 engineer

Leadership

Stood up the org’s first usability-measurement practice and ran it every release

Shared or outside my scope

Engineering built the fixes; product owned release scope

My role

Design lead · Recurly product design

Scope

The benchmark, the test scripts, and the measurement practice

Team

1 engineer

Leadership

Stood up the org’s first usability-measurement practice and ran it every release

Shared or outside my scope

Engineering built the fixes; product owned release scope

CS-04

TL;DR — the case in one card

Problem

Recurly’s platform shipped on merchant trust and had never once been usability-tested. Design quality was invisible, and value you can’t measure is easy to cut.

What I did

Built the org’s first repeatable measurement practice: six revenue-critical tasks, one script, run as a benchmark every release, with fixes shipped between runs.

49→100%

Cancel-subscription task success

runs 1→2 of a six-task benchmark

20→87%

Issue-refund success

runs 1→2 of a six-task benchmark

3

Benchmark runs

Baseline · fixes · rework

Timeline

2 months to stand up

Status

Adopted as a release ritual

Org

Recurly · 2017–19

CS-04

TL;DR — the case in one card

Problem

Recurly’s platform shipped on merchant trust and had never once been usability-tested. Design quality was invisible, and value you can’t measure is easy to cut.

What I did

Built the org’s first repeatable measurement practice: six revenue-critical tasks, one script, run as a benchmark every release, with fixes shipped between runs.

49→100%

Cancel-subscription task success

runs 1→2 of a six-task benchmark

20→87%

Issue-refund success

runs 1→2 of a six-task benchmark

3

Benchmark runs

Baseline · fixes · rework

Timeline

2 months to stand up

Status

Adopted as a release ritual

Org

Recurly · 2017–19

01

A platform thousands trusted, never once tested

Recurly is a B2B2C subscription billing platform: the system merchants trust to charge their customers correctly. That trust cut both ways. Every rough edge shipped at scale, on tasks with real money in them, and in the platform’s history nobody had ever run a usability test on it. Quality was invisible; releases shipped on faith.

The invisibility was a design problem of its own. Value you can’t measure is easy to cut, and design at Recurly was spending its credibility on opinion. I wanted a different currency.

The thesis case

This is the practice behind the receipts. The habit of attaching a number to design work starts in projects like this one.

02

Don’t argue for design. Measure it.

The bet was simple: stop making the case for design in meetings and let the product make it. I picked six revenue-critical tasks (canceling a subscription, adding one, and issuing a refund among them), wrote one test script with an engineer, and made those tasks the yardstick we’d run every release.

One scorecard, every release: the same tasks and the same script, so every delta is directly comparable to what shipped in between.

Field note

A measurement practice doesn’t need a research org. It needs a script, a calendar, and some stubbornness.

Design impact stops being an opinion and becomes a time series.

Benchmark constants — held every run

The tasks

Six revenue-critical tasks — canceling a subscription, adding one, and issuing a refund among them — in the same order, every run.

The script

One script, re-run verbatim each release, so every delta is directly comparable to what shipped in between.

The reporting

Task success per task, per run. Laggards stay on the chart, Add Charge Invoice included.

The caveat

Small cohort, kept consistent: directional results, reported as exactly that.

fig. 2.1

The scorecard’s standing rules.

Validately task prompt asking the tester to add a $10 charge to a customer account.

fig. 2.2

The instrument in the field: one of six task prompts, run unmoderated in Validately, think-aloud. Testers were recruited cold — no Recurly background, no help.

Artifact · test script

Validately task prompt asking the tester to add a $10 charge to a customer account.

fig. 2.2

The instrument in the field: one of six task prompts, run unmoderated in Validately, think-aloud. Testers were recruited cold — no Recurly background, no help.

03

Three calls: same tasks, revenue stakes, laggards stay visible

The benchmark’s credibility came down to three decisions.

Honest ledger

Every one of these calls trades short-term shine for long-term believability. That’s the whole product.

DL-01

Benchmark the same six tasks, every run

Alternative considered

Test whatever each release shipped: fresh tasks per round, tuned to the newest work.

Why it won

Identical tasks and scripts make runs comparable. Gains read as real, not a one-time bump, and the trend survives skepticism.

What it cost

Coverage. Work outside the six tasks goes unmeasured, and the scorecard says nothing about it.

DL-01

Benchmark the same six tasks, every run

Alternative considered

Test whatever each release shipped: fresh tasks per round, tuned to the newest work.

Why it won

Identical tasks and scripts make runs comparable. Gains read as real, not a one-time bump, and the trend survives skepticism.

What it cost

Coverage. Work outside the six tasks goes unmeasured, and the scorecard says nothing about it.

DL-02

Make revenue-critical tasks the yardstick

Alternative considered

Benchmark the flows design most wanted to fix, where quick wins were likely.

Why it won

Cancel, add, refund: tasks the business already cared about. When those numbers move, nobody asks why the metric matters.

What it cost

A harder test. Revenue paths run through billing logic, and the baseline scores were ugly enough to be uncomfortable.

DL-02

Make revenue-critical tasks the yardstick

Alternative considered

Benchmark the flows design most wanted to fix, where quick wins were likely.

Why it won

Cancel, add, refund: tasks the business already cared about. When those numbers move, nobody asks why the metric matters.

What it cost

A harder test. Revenue paths run through billing logic, and the baseline scores were ugly enough to be uncomfortable.

DL-03

Keep the lagging number on the chart

Alternative considered

Report the wins, and quietly bench Add Charge Invoice until it improved.

Why it won

A scorecard that only goes up reads as a pitch. The number that didn’t move is what made the others credible.

What it cost

Every readout opened with a question about the laggard. Worth it.

DL-03

Keep the lagging number on the chart

Alternative considered

Report the wins, and quietly bench Add Charge Invoice until it improved.

Why it won

A scorecard that only goes up reads as a pitch. The number that didn’t move is what made the others credible.

What it cost

Every readout opened with a question about the laggard. Worth it.

04

Run 1 set the baseline. Run 2 moved it. Run 3 made it a practice.

Run 1 was uncomfortable on purpose: 49%, 29%, and 20% task success on flows merchants pay for. Run 2 repeated the identical script one month and one focused fix list later, and most key tasks jumped (fig. 1). By Run 3, the scorecard was simply how release quality got judged.

On the fixes

Nothing heroic moved these numbers: an actions menu, a link where people actually looked, fewer dead ends. Placement beat invention.

Outcome coding — run 1 · Nov 2018 · 15 testers

Add charge invoice

5

2

2

6

Add credit invoice

12

3

Add subscription

5

2

8

Edit subscription

9

2

3

Cancel subscription

7

4

3

Issue refund

5

5

5

Direct success

Eventual success

Unable to complete

Perceived complete — wasn’t

fig. 4.1

Run 1, coded four ways. The rightmost band is the dangerous one: testers who believed they’d finished a revenue task, and hadn’t.

Benchmark · run 1 · Nov 2018

Run

What shipped

What it showed

What it earned

RUN 1

Nothing yet. The baseline: six revenue tasks, one script, the platform’s first usability data.

Cancel Subscription at 49% task success, Add Subscription at 29%, Issue Refund at 20%.

Quality really had been shipping on faith. Now it had numbers.

RUN 2

A focused fix list: an actions menu on the subscription card, a direct add-subscription link on the account page, a clearer refund path.

Most key tasks jumped: 100%, 91%, 87%. Add Charge Invoice still lagged.

Small, attributable fixes move numbers. The laggard earned its own rework.

RUN 3

A multi-phase rework: credits and charges split onto separate documents, and the charge, credit, and refund flows rebuilt across three rounds.

The credit-invoices project (CS-05), judged by the same script as everything before it.

One test had become a practice. The scorecard now outlives any single project.

RUN 1

What shipped

Nothing yet. The baseline: six revenue tasks, one script, the platform’s first usability data.

What it showed

Cancel Subscription at 49% task success, Add Subscription at 29%, Issue Refund at 20%.

What it earned

Quality really had been shipping on faith. Now it had numbers.

RUN 2

What shipped

A focused fix list: an actions menu on the subscription card, a direct add-subscription link on the account page, a clearer refund path.

What it showed

Most key tasks jumped: 100%, 91%, 87%. Add Charge Invoice still lagged.

What it earned

Small, attributable fixes move numbers. The laggard earned its own rework.

RUN 3

What shipped

A multi-phase rework: credits and charges split onto separate documents, and the charge, credit, and refund flows rebuilt across three rounds.

What it showed

The credit-invoices project (CS-05), judged by the same script as everything before it.

What it earned

One test had become a practice. The scorecard now outlives any single project.

Recurly account page with red boxes marking the new Add Subscription, Add Charge, and Add Credit links.

fig. 4.2

Fix, not invention: Add Subscription, Add Charge, and Add Credit surfaced on the account page — where testers kept looking for them.

Shipped between runs

Recurly account page with red boxes marking the new Add Subscription, Add Charge, and Add Credit links.

fig. 4.2

Fix, not invention: Add Subscription, Add Charge, and Add Credit surfaced on the account page — where testers kept looking for them.

Recurly subscription details page with a red box marking the new Options menu, open to Edit, Pause, and Cancel Subscription.

fig. 4.3

The actions menu on the subscription record: Edit, Pause, and Cancel, one click from where the task starts.

Shipped between runs

Recurly subscription details page with a red box marking the new Options menu, open to Edit, Pause, and Cancel Subscription.

fig. 4.3

The actions menu on the subscription record: Edit, Pause, and Cancel, one click from where the task starts.

Outcome coding — run 2 · Mar 2019 · 11 testers

Add charge invoice

5

1

5

Add credit invoice

8

1

1

1

Add subscription

9

1

1

Edit subscription

8

3

Cancel subscription

11

Issue refund

8

1

2

Direct success

Eventual success

Unable to complete

Perceived complete — wasn’t

fig. 4.4

Run 2, same tasks, same coding. Cancel Subscription went clean — eleven of eleven direct successes. Add Charge Invoice stayed stubborn, and stayed on the chart.

Benchmark · run 2 · Mar 2019

05

The numbers moved. The practice stayed.

Directional · small cohort

Benchmark results

49→100%

Cancel-subscription task success

directional · small cohort — method below

20→87%

Issue-refund task success

Method, stated plainly: iterative usability testing across release cycles with consistent task scripts and a small cohort, so these are directional results, not a controlled study. Add Charge Invoice still lagged after Run 2, and it stays on the chart on purpose. The lasting win is the practice itself: the org kept running the scorecard, and Run 3 grew into the credit-invoices rework (CS-05).

Directional · small cohort

Benchmark results

49→100%

Cancel-subscription task success

directional · small cohort — method below

20→87%

Issue-refund task success

Method, stated plainly: iterative usability testing across release cycles with consistent task scripts and a small cohort, so these are directional results, not a controlled study. Add Charge Invoice still lagged after Run 2, and it stays on the chart on purpose. The lasting win is the practice itself: the org kept running the scorecard, and Run 3 grew into the credit-invoices rework (CS-05).

Reported ease of task, 1–5 — testers’ own rating

Add charge invoice

3.67→4.18

Run 1

3.67

Run 2

4.18

Add credit invoice

4.33→4.36

Run 1

4.33

Run 2

4.36

Add subscription

3.73→4.91

Run 1

3.73

Run 2

4.91

Edit subscription

4.20→5.00

Run 1

4.20

Run 2

5.00

Cancel subscription

3.53→4.73

Run 1

3.53

Run 2

4.73

Issue refund

3.33→4.09

Run 1

3.33

Run 2

4.09

fig. 5.1

Reported ease, run over run. Every task moved up; nothing that shipped got harder.

Benchmark · runs 1–2

Task success — quarterly goal line

Goal (OKR)

Actual

Run 1

Q4 2018

55.6%

Run 2

Q1 2019

60%

77.3%

Run 3

Q2 2019

85%

TBD

fig. 5.2

The number that outlived the study: task success became a quarterly OKR with a goal line. Run 2 beat its 60% goal at 77.3%.

Artifact · roadmap OKR

06

Let the numbers do the arguing

What worked here travels anywhere: pick tasks the business already values, hold the script constant, and let the numbers carry the argument instead of the designer. What I’d change is sequencing. I stood the baseline up alongside the first fixes; next time it comes first, so every later gain is unambiguous. The practice’s last job is running without me, wired into every release cycle and owned by the team.

There’s more to the practice than fits one page.

Closing note

The best artifact this project produced wasn’t a screen. It was a habit the org kept.