PTN—39
Inspectable personalization
When output is shaped by a profile, let people see why, adjust the levers, and preview the unpersonalized version.
Personalization without inspection is astrology: the system asserts that this output suits you, and you have no way to check. Inspectable personalization adds three affordances — a “why am I seeing this?” explanation tied to the actual signals used, controls that map to those signals, and a way to see what the neutral output would have been. Together they turn personalization from something done to people into something they operate.
The explanation is the load-bearing part, and it fails when it’s generic. “Based on your activity” explains nothing and insults the reader. A real explanation names the signal: “Suggested because you edited three files in this package today.” Naming signals is uncomfortable — it exposes how thin most personalization actually is — which is precisely why it keeps teams honest about what they build.
The preview matters more as personalization gets stronger. A recommendation ranked slightly differently is low stakes; an answer rewritten around your assumed skill level is not. If a junior engineer and a staff engineer would receive materially different explanations of the same code, both deserve to know that, and to flip the switch. The unpersonalized view is the control group people use to calibrate trust in the personalized one.
The pattern has roots outside AI entirely — “Why am I seeing this ad?” affordances and years of feed-transparency fights taught users to expect an explanation, and generative products inherit that expectation with higher stakes, because now the content itself is rewritten, not merely reordered. The tradeoff is exposure: honest explanations reveal how much the system infers, and some teams keep them vague precisely to dodge that conversation. Maturity is choosing the opposite — Spotify naming the seed behavior, ChatGPT making the profile a text box the person wrote themselves. When the explanation doubles as the control, inspection stops being a settings page and becomes the feature.
When to use
- Ranked, filtered, or rewritten output varies per user in ways they could notice.
- Personalization draws on behavioral signals people didn’t explicitly provide.
- Getting the profile wrong degrades the experience badly — skill-level or role assumptions especially.
- You offer personalization as a feature and need people to trust it enough to leave it on.
Design considerations
- 01Attach a “why this?” affordance directly to personalized items, not in a distant help page.
- 02Name the specific signals in explanations — the file, the query, the setting — never “your activity.”
- 03Provide a toggle or preview that shows the unpersonalized output for comparison.
- 04Map every stated signal to a control; if you explain “because you read X,” let people remove X.
- 05Change personalization gradually and announce shifts — a feed that reorders overnight reads as broken.
- 06Keep personalization out of safety-relevant and factual content; personalize framing, not facts.
Pitfalls
- ✕Explanations written by legal, for legal — technically true, informationally empty, and everyone can tell.
- ✕Controls that don’t actually connect to the model. The “not interested” button that changes nothing trains people to stop giving feedback anywhere in your product.
- ✕Skill-level inference that condescends: the system decides you’re a beginner and silently caps the depth of every answer.
- ✕Personalization presented as objectivity — “top results” that are actually “top results for the profile we built,” with no marker of the difference.
In the wild
- Spotify
- Labels personalized playlists as “Made for you” and names the seed behavior (“because you listened to…”), keeping the personalized surface visibly distinct from the catalog.
- GitHub Copilot
- Draws on open files and repository context; developers can steer what it sees by what they open, making the personalization lever the same as the working set.
- ChatGPT
- Custom instructions are user-written and user-visible — the personalization profile is literally a text box the person authored, with an on/off toggle.
- X (Twitter)
- Ships a “For you” / “Following” split — a one-tap comparison between the personalized feed and the unpersonalized one, which is the preview affordance in its crudest workable form.