Metlivi Blog

Make every feature work from the smallest justified context

A useful companion app does not need every feature to consult a large, permanent portrait of its user. Start with a zero-profile baseline: can the person open the feature, make a one-time choice, receive a neutral result, and finish the task when saved interests, inferred traits, history, location, contacts, and demographic fields are absent? Then add only context that changes a clearly named decision. Record it in a profile-dependency register with the feature output, source field, whether it was directly supplied or inferred, necessity, fallback, expiry, correction route, and observed result. This approach does not reject personalization. It makes personalization optional, inspectable, and proportionate, while preventing an old guess from silently becoming the foundation of unrelated features.

August 27, 20269 min readHome, Safety, Pets & Sustainable LivingBy Metlivi Editorial Team
Section 1

List decisions, not merely collected fields

Begin with outputs people actually encounter: opening suggestions, conversation prompts, reminders, search order, saved-item resurfacing, notification timing, language, accessibility choices, discovery, and sharing defaults. For each output, write the exact decision made and the profile input consulted. A field that exists is not automatically needed. Ask what would happen if it were blank, wrong, stale, or unavailable. The ICO's data-minimisation guidance describes personal data as adequate, relevant and limited to what is necessary for the purpose, with review when it is no longer needed. Turn that principle into a feature-level question: which smallest input is sufficient for this decision today? Keep direct entries separate from predictions, because a user-selected language and a guessed preference require different confidence, correction, and expiry.

Section 2

Design a zero-profile and minimal-profile path

Test the service with an empty profile and with only the fields required to create an account. The opening screen should remain understandable; search should accept an explicit query; a prompt can offer several neutral starting points; and a one-time selection can shape the current session without becoming a permanent trait. If the feature cannot proceed, name the missing input and why it is necessary instead of asking for a broad biography. Prefer progressive requests at the moment of use. A calendar-related feature may need a chosen time for one reminder, not access to every prior conversation. A local language choice may be necessary for presentation, while hobbies, relationship labels or location may have no role in the same decision.

Section 3

Separate session context from persistent profile

Context can live for one screen, one conversation, a bounded project, or the whole account. Choose the shortest scope that still completes the task. A temporary choice such as “show quiet indoor ideas now” can guide the current result and then expire; it does not have to become a durable claim about the person. When persistence adds genuine convenience, show what will be saved, where it will be used, and how to exclude or reset it. Inferences need a visible source and a shorter review interval because they can drift. Never let a convenience field become an invisible prerequisite for unrelated navigation, export, privacy settings, or account access. Purpose limitation and minimisation in Article 5 support keeping the use tied to its stated reason rather than allowing every stored field to flow everywhere.

Section 4

Give every dependency a fallback, correction, and expiry

The register should name a neutral fallback for each optional dependency: chronological order instead of predicted ranking, broad categories instead of a personal label, manual search instead of an inferred shortcut, or a private draft instead of an audience guess. Add edit, remove, exclude-from-this-feature, reset, and expiry actions where the current product supports them. Correction must affect the dependent output rather than merely changing a profile page. Record whether existing suggestions update, only future results change, or a saved derivative remains. Do not promise deletion outside observable controls. NIST's Privacy Framework is useful here because it treats privacy risk as part of system processing and governance, not as a single consent screen. The register makes owners and unanswered cells visible.

Section 5

Compare personalized and baseline results with neutral tests

Create two test accounts or states you are authorized to use: one with the minimum profile and one with a small, harmless preference. Run the same neutral tasks and compare completion, clarity, correction, and unexpected use—not which result feels more flattering. Clear the preference, repeat the task, and check search, suggestions, notifications, sharing defaults, exports, and the visible profile. A useful personalized path should degrade gracefully when data is absent and respond predictably when it is corrected. Record version, locale, device, input, expected fallback, observed output, and unresolved behavior. Repeat after a feature begins consulting a new source, after a major version change, or when a field remains influential beyond its stated expiry. The goal is a bounded dependency map, not constant surveillance.

Related questions

Common questions

Does reducing profile dependence mean turning off all personalization?

No. It means each personalized decision has a necessary input, limited scope, visible fallback, correction route and review point.

What is a zero-profile baseline?

It is the usable path observed when optional saved and inferred profile fields are absent.

Should inferred preferences stay as long as direct choices?

Not automatically. Inferences need a visible source, correction path and an expiry suited to how quickly they can become stale.

Related reading

Keep exploring this topic