On this page
  • Personalization
  • Segmentation
  • Interaction patterns
  • Accessibility

Dorothy Perkins: why weren’t students saving?

The data already knew who was shopping. I helped the website show it, with experiences that were simple, under the shopper’s control, and backed by a business case each.

My role
Personalization specialist
Team
Capita · Qubit, for Dorothy Perkins (Arcadia)
Methods
Segment analytics · rule-based logic · merchandising
Platform
Qubit

50%

of UK sales segmented at peak (as reported)

01 · The gaps

What the data knew, and the site ignored

Finding data wasn’t the problem. Getting it to show up as something useful, in a way the board could trust, was.

  • 1 · The offer nobody saw

    Students got 10% off, but the discount surfaced at the end of the journey, long after the choice to buy was made.

  • 2 · A national site for regional tastes

    Product performance varied strongly by place. The site still ranked products for one national average that described nobody.

  • 3 · “Personalization” as a buzzword

    Treated as an abstract capability, it stalls. It needed to become concrete, tested treatments the board could read.

02 · The patterns

Two signals, two decisions

Each gap had more than one possible fix. The choice came down to one question: which option is most honest and most in the shopper’s control?

Student pricing: who decides you’re a student?

  • Status quo

    Discount at checkout

    Correct, but too late. The offer did no work while people were browsing and deciding.

  • Rejected

    Infer student status

    Fragile and full of assumptions. Guessing wrong on price feels intrusive, both ways.

  • Chosen

    One-tap self-select

    A toggle in the header. The shopper says who they are, and is rewarded instantly.

Merchandising: whose idea of “popular”?

  • Status quo

    National best-sellers

    One average ranking for everyone. It described the typical shopper and fitted nobody.

  • Rejected

    Curated regional picks

    A merchandiser’s guess about a region, and stale by next week.

  • Chosen

    Local, last 24 hours

    Ranked by what people in the area added to their bags yesterday. A fact, not a guess.

on price, being open beats guessing

03 · Components and states

Every pattern, broken into states

Each experience became a small component with defined states and one rule for when it shows. These are recreated specimens with placeholder products, not the original Dorothy Perkins screens.

Student price toggle

StudentToggle · header

Off (default)

Student prices

On

Student prices on · 10% off

Keyboard focus

Student prices
Trigger
The shopper taps it. Nothing is inferred.
Effect
Every price switches straight away, with no reload.
Persists
Across product listings and product pages, so the whole journey is framed by the discount.
State
Shown in words (“on · 10% off”), not just by colour or knob position.

Price

Price · regular | student

Regular

[Product name]

£50.00

Student

[Product name]

Student price £45.00was £50.00Student

Rule
The new price comes first. The old price is struck through and also says “was” for screen readers, because strikethrough alone isn’t read out.
Announce
One polite message when the toggle changes (“Showing student prices”), not one per product.

LocalTrending · located | fallback

Location known

Trending in [your area]

Change area
  • [Product]#1 added to bag
  • [Product]#2
  • [Product]#3

Location unknown

Popular across the UK

  • [Product]#1
  • [Product]#2
  • [Product]#3
Trigger
An IP lookup finds the shopper’s region.
Ranking
Most added to bag in that region over the trailing 24 hours.
Fallback
No region found: show the national list rather than a wrong local one.
Open
The heading says where the list comes from. “Change area” is the version I’d add today.

Welcome and orientation

WelcomeBanner · first visit

First visit

Welcome to Dorothy Perkins

[One line on what’s new or how to get started]

Close

Returning or dismissed

Not shown.

Then
Urgency banners on product pages and a welcome popup for first-time visitors.
Now
I’d make it an inline banner, not a popup, so it never covers focus or traps the keyboard.

04 · Tokens

The variables behind the components

A small token set keeps the student state consistent wherever it appears. The token names are illustrative, reconstructed for this case study, and every value is checked against WCAG 2.2 AA.

Illustrative tokens for the student pricing components
TokenValueUsed byCheck
color.price.student#5B3FD4Student price, “Student” note6.76:1 on white
color.price.was#5C5C5CStruck-through old price6.0:1 on the card ground
color.toggle.on.bg#5B3FD4 + white textToggle, on state6.76:1. The live page uses #8B69FA, which is 3.82:1 and fails
color.toggle.off.border#1F1F1FToggle outline, off stateAbove 3:1 for 1.4.11 non-text contrast
size.target.min44pxToggle, banner close, “Change area”Above the 24px minimum in 2.5.8
radius.toggle999px (pill)ToggleMatches the portfolio pill radius
motion.price.swap150ms fadePrice changeSwitched off under reduced motion

05 · Accessibility

Personalization the shopper can see and steer

A personalized page is only fair if everyone can tell what changed and why. These rules map the patterns to WCAG 2.2 AA.

Pattern rules and the WCAG 2.2 criteria they support
RuleWCAG 2.2In practice
The toggle is a real button with its state exposed4.1.2 Name, role, valuearia-pressed plus visible “on” text, so the state isn’t carried by colour.
Price changes are announced once4.1.3 Status messagesOne polite message, not one for every price on the page.
“Was” prices are readable, not just struck through1.3.1 Info and relationshipsHidden “was” and “student price” text tells screen readers which price is which.
Student mode stays on across pages3.2.3 Consistent navigationSame toggle, same place, same state on listings and product pages.
Area filters work by keyboard2.1.1 KeyboardIf areas appear as tabs, use a proper tab list with arrow keys. Otherwise, a plain “Change area” link.
The welcome never hides focus2.4.11 Focus not obscuredAn inline banner instead of a popup, with a 44px close button.

06 · Results

From hidden discount to board-level strategy

50%

Of UK sales segmented at peak, with these experiences contributing (reported)

10%

Student discount moved from checkout to the first page a student sees

Board

Personalization became part of the brand’s growth strategy, discussed at board level

Program principle

Keep it simple, and build a business case for every experience before it ships.

Each experience passed a governance check before launch: a control holdout, a clear mechanic and a measurable outcome. Per-experience uplift figures aren’t published here. Segment personalization within the Arcadia Group; proprietary metrics generalised for confidentiality.

07 · Reflection

What I learned

Let shoppers steer

On a sensitive surface like price, letting people say who they are beats guessing. It’s direct, respectful and immediately rewarding.

Behaviour beats demographics

A national best-seller list describes nobody. Recent local behaviour kept the merchandising relevant without anyone guessing.

Governance is a feature

The control holdout wasn’t red tape. It made every idea state its mechanism and metric before launch, and that’s what earned the board’s trust.

If I ran it again

  1. Publish each experience’s lift against its control, with sample size and confidence interval.
  2. Design the eligibility check with students, so self-select stays easy and the discount is still fair.
  3. Test the toggle and the price announcements with screen-reader and keyboard users.