Search

Search components, tokens, patterns, architecture

Patterns

Partial Data States

The engine layer is built for gaps: missing data reduces confidence, never scores. The UI renders partiality through assumptions, missing-input lists, confidence gating, and cycle-mode subtitles.

62d since last bleed — recommendations follow how you feel, not cycle phase.
No sleep logged — assumed 6h. Capacity is not penalised.
Two partial-data disclosures: cycle uncertainty and assumed sleep

Rules

  1. 01Unknown sleep → assume 6h internally; no crash risk added, capacity not reduced.
  2. 02missingInputs[] (max 3) renders in the fueling drawer.
  3. 03patternConfidence gates how much cycle framing appears.
  4. 04cycleMode swaps the focus subtitle: phase → “Cycle irregular” → “Xd since last bleed”.

Examples

Late perimenopause

≥60 days since last bleed: no phase labels at all; the subtitle counts days; operating mode is “Follow how you feel today.” The product gracefully sheds its cycle layer as cycles fade — the core perimenopause design problem, solved structurally.

Anti-patterns

What breaks this pattern

  • Penalising scores for unlogged days
  • Showing phase guesses during late peri
  • Hiding cards because one input is missing

Do

  • ·Disclose every internal assumption
  • ·Shed features gracefully as data fades

Don't

  • ·Treat missing as bad
  • ·Guess silently