title: Mental-model preference coherence type: concept created: 2026-04-24 updated: 2026-04-24 tags: [ux, preferences, mental-model, user-experience, product-engineering, coherence, predictability, settings] sources: [2026-03-19-slack-how-slack-rebuilt-notifications] related: concepts/preference-schema-decoupling, concepts/support-burden-as-architecture-signal, concepts/explicit-state-over-implicit-sync, systems/slack-notifications-2-0
Mental-model preference coherence¶
Mental-model preference coherence is the architectural discipline of designing preference schemas so that the storage model matches the user's internal model of what the system should do. When coherent, setting X reliably does Y; when incoherent, users must learn the system's hidden derivation rules to predict outcomes.
Canonical framing from the 2026-03-19 How Slack Rebuilt Notifications post: "The architecture now matches users' mental models, making behavior predictable." Slack is explicitly framing the preference schema itself as architecture — and the mental-model mismatch as an architectural defect, not a UX polish issue.
Three symptoms of incoherence¶
- Unpredictable setting effects. Users change a setting and can't predict what will happen. Slack's legacy state: "Users couldn't predict what would happen when they changed a setting." The diagnostic test: if a user has to try a setting to see what it does, the schema is incoherent.
- Hidden semantics across options with identical
labels. Slack's pre-rebuild state had
'desktop': 'nothing'and'mobile': 'nothing'meaning structurally different things. "A 'nothing' setting on mobile meant something entirely different from 'Off' on desktop." When the same label denotes different behaviour, the model is incoherent. - Sustained support burden. If a feature generates disproportionate CX tickets for years, the fix is usually structural schema work, not better copy or better help docs. See concepts/support-burden-as-architecture-signal.
Coherence as decomposition into orthogonal concepts¶
Coherent preference schemas decompose into concepts the user already holds in their head. For Slack notifications, the user's mental model has two orthogonal dimensions:
- "What should I be aware of?" (content)
- "How should the system interrupt me?" (delivery)
The legacy schema conflated these into a single enum; the user had no way to express "aware but not interrupted" (the desire for all-activity + no-push). The rebuilt schema splits them into two axes, and user mental model → schema axes → storage columns is now a 1:1 mapping.
Incoherence typology¶
Four recurring failure modes:
- Conflated axes — one enum for multiple concerns; see concepts/preference-schema-decoupling.
- Hidden coupling — changing X secretly also changes Y. Slack's legacy: picking "nothing" for desktop push also silently disabled desktop in-app badges.
- Implicit derivation rules — the effective setting is
a function of stored state + some rule the user doesn't
know. Slack's legacy
syncparameter; concepts/explicit-state-over-implicit-sync is the companion discipline. - Discovery by defect — power-user controls scattered across menus with no clear hierarchy. Slack legacy: "Features like 'badge all unreads' on mobile were hidden, and there was no unified place to understand all your notification options."
Coherence dividend¶
The rebuild's post-launch metrics (canonical verbatim):
- "Settings engagement increased 5×" sustained for weeks.
- "Push notification toggles led to higher usage, with users immediately discovering the decoupled desktop/mobile controls."
- "Better defaults meant fewer workarounds — the percentage of users needing per-channel overrides decreased."
- "Support burden decreased significantly."
Collectively these describe a system where users find the settings they want, make changes that match their intent, and don't file tickets about it. That's what coherence buys.
Relationship to product-engineering altitude¶
This is one of several wiki concepts that sit at the product-engineering altitude — where user-facing design choices are architectural decisions with downstream systems-engineering consequences. The others:
- concepts/support-burden-as-architecture-signal — ticket volume as a structural-defect diagnostic.
- concepts/explicit-state-over-implicit-sync — user- model coherence at the storage-schema altitude.
- patterns/unified-preference-model-for-cross-client-state — the cross-platform instance.
Caveat: coherence is model-dependent¶
User mental models differ across user segments. Slack's post implicitly assumes a knowledge-worker-power-user model where the two-axis decomposition (content × channel) matches intuition. A less-sophisticated user base might prefer a further simplification to a single enum; a more sophisticated base might want more axes (per-channel, per-keyword, per-time-window, etc.). Coherence is not a universal optimum — it's alignment with the target user's mental model. The right segmentation is an empirical question answered by user research + support- ticket pattern analysis.
Seen in¶
- systems/slack-notifications-2-0 — canonical
instance. Storage schema (
desktop,desktop_push_ enabled,mobile) aligned with user mental model (content × channel × per-platform).
Related¶
- concepts/preference-schema-decoupling — the companion schema-shape discipline.
- concepts/support-burden-as-architecture-signal — the diagnostic that detects incoherence.
- concepts/explicit-state-over-implicit-sync — the implementation discipline that preserves coherence.
- concepts/cross-platform-preference-parity — coherence across clients.
- patterns/decouple-what-from-how-in-preferences — the pattern that produces coherent schemas.