Company
Charles Schwab
Role
Principal Product Designer
Scope
Migration + Redesign
Impact
1.8M+ users migrated
Project Timeline
6 months

Architecting personalization: a scalable recommendation engine for Macy's.

A unified decision layer that took recommendations from page-by-page widgets to one architecture spanning search, PDP, cart, and post-purchase.

Macy's recommendation engine across the shopping experience

The recommendation experience had fragmented over time across the PDP, search, and cart. Because each surface relied on different ranking models and disconnected signals, customers often encountered contradictory or irrelevant recommendations within the same session.

I led design for the shift from page-by-page widgets to one decision layer: a shared model for signals, governance, ranking, and trust that every surface could render against the same component vocabulary.

The Problem

Every page recommending in isolation.

Before — Legacy PDP
Legacy Macy's PDP recommendation widget
After — Unified PDP
New Macy's PDP with context-aware recommendations

The problem wasn't the algorithm.
It was the surface around it.

The Approach

From siloed widgets to a unified decision layer.

Legacy systems operated on a page-by-page basis. The PDP had no context of what was seen on the search results page, and the cart had no memory of either. Each touchpoint shipped its own ranking model and produced contradictory suggestions.

The redesigned architecture established a shared recommendation framework across surfaces, aligning signals, governance, ranking logic, and trust patterns through a common system of tokens and rules.

Recommendation architecture diagram
The Decision Layer

A four-tier architecture: signals, rules, ranking, and trust.

Macy's new recommendation module on PDP
1
Signals Captured real-time customer behavior through browse patterns, dwell time, cart activity, and visual similarity matching.
2
Rules Gave merchandising teams control over margin, inventory, and category exclusivity.
3
Ranking ML scoring by historical affinity and predicted probability of purchase.
4
Trust Final UI filter for price-point consistency and aesthetic harmony.
18ms
P99 latency on the cart overlay decision layer at peak shopping load.
Cart overlay — step one
Cart overlay — step two
Cross-Functional

One framework, four organizations.

01 / ML Engineering
Defining the human signal
Shaped the ranking logic to emphasize visual similarity, brand affinity, and category fit instead of optimizing only for clicks.
02 / Merchandising
Levers without breaking the model
Developed a scalable ranking framework that balanced merchant priorities such as seasonal relevance and house-brand promotion with consistent recommendation trust and quality.
03 / Product Strategy
From click to lifetime value
Realigned recommendation KPIs around LTV instead of next-click conversion, so the system rewarded loyalty over bait-and-switch tactics.
04 / Design Systems
One vocabulary, every surface
Shipped a unified component vocabulary for recommendations, so a "Complete the Look" module on PDP and a cart overlay drew from the same primitives.

Shipped in 2022.
Revisited in 2026 with AI.

What this project would look like if I shipped it today.

Claude
Figma Make
Retrospective

After Macy's launched, I went back and re-ran two phases of the work with AI in the loop, to see where it actually accelerated me and where it didn't.

Claude accelerated the synthesis of merchandiser interviews and behavioral analytics into four shared context dimensions, compressing weeks of analysis into a matter of hours.

Figma Make let me prototype the cart overlay as a working component with live state, which made the 18ms latency target a design constraint instead of an engineering afterthought.

Macys Figma Make prototype screenshot
The Outcome
+24%
Conversion lift attributable to the Complete the Look architecture rollout.
18ms
P99 latency on the cart overlay decision layer at peak shopping load.
$140M
Annualized incremental revenue across digital channels.
Reflection

The complexity of the project came less from the algorithm or UI and more from cross-functional alignment. Merchandising, ML, and platform teams had to operate as owners of a single personalization system rather than separate initiatives.