Let shoppers steer
On a sensitive surface like price, letting people say who they are beats guessing. It’s direct, respectful and immediately rewarding.
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.
50%
of UK sales segmented at peak (as reported)
01 · The gaps
Finding data wasn’t the problem. Getting it to show up as something useful, in a way the board could trust, was.
Students got 10% off, but the discount surfaced at the end of the journey, long after the choice to buy was made.
Product performance varied strongly by place. The site still ranked products for one national average that described nobody.
Treated as an abstract capability, it stalls. It needed to become concrete, tested treatments the board could read.
02 · The patterns
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?
on price, being open beats guessing
03 · Components and 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.
StudentToggle · header
Off (default)
Student pricesOn
Student prices on · 10% offKeyboard focus
Student pricesPrice · regular | student
Regular
[Product name]
£50.00
Student
[Product name]
Student price £45.00was £50.00Student
LocalTrending · located | fallback
Location known
Trending in [your area]
Change areaLocation unknown
Popular across the UK
WelcomeBanner · first visit
First visit
Returning or dismissed
04 · Tokens
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.
| Token | Value | Used by | Check |
|---|---|---|---|
| color.price.student | #5B3FD4 | Student price, “Student” note | 6.76:1 on white |
| color.price.was | #5C5C5C | Struck-through old price | 6.0:1 on the card ground |
| color.toggle.on.bg | #5B3FD4 + white text | Toggle, on state | 6.76:1. The live page uses #8B69FA, which is 3.82:1 and fails |
| color.toggle.off.border | #1F1F1F | Toggle outline, off state | Above 3:1 for 1.4.11 non-text contrast |
| size.target.min | 44px | Toggle, banner close, “Change area” | Above the 24px minimum in 2.5.8 |
| radius.toggle | 999px (pill) | Toggle | Matches the portfolio pill radius |
| motion.price.swap | 150ms fade | Price change | Switched off under reduced motion |
05 · Accessibility
A personalized page is only fair if everyone can tell what changed and why. These rules map the patterns to WCAG 2.2 AA.
| Rule | WCAG 2.2 | In practice |
|---|---|---|
| The toggle is a real button with its state exposed | 4.1.2 Name, role, value | aria-pressed plus visible “on” text, so the state isn’t carried by colour. |
| Price changes are announced once | 4.1.3 Status messages | One polite message, not one for every price on the page. |
| “Was” prices are readable, not just struck through | 1.3.1 Info and relationships | Hidden “was” and “student price” text tells screen readers which price is which. |
| Student mode stays on across pages | 3.2.3 Consistent navigation | Same toggle, same place, same state on listings and product pages. |
| Area filters work by keyboard | 2.1.1 Keyboard | If areas appear as tabs, use a proper tab list with arrow keys. Otherwise, a plain “Change area” link. |
| The welcome never hides focus | 2.4.11 Focus not obscured | An inline banner instead of a popup, with a 44px close button. |
06 · Results
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
On a sensitive surface like price, letting people say who they are beats guessing. It’s direct, respectful and immediately rewarding.
A national best-seller list describes nobody. Recent local behaviour kept the merchandising relevant without anyone guessing.
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.