Skip to content

M5: Replace streak logic with Adherence Rate + Tracking Consistency #157

@Sturmi77

Description

@Sturmi77

Context

M5 was originally planned with streak-based habit tracking. This conflicts with the new core promise "No gamification, ever — you track your habits, not how often you open the app".

Streaks are gamification by definition: they punish interruptions, create artificial urgency, and optimize for app opens rather than genuine user value.

Decision

Streaks in M5 are replaced entirely by three non-gamification alternatives:

1. Adherence Rate (primary KPI)

Instead of "12-day sport streak", show: "Sport: 71% of the last 4 weeks"

  • Honest, does not break on a single missed day
  • No guilt-trip framing
  • Formula: count(days_with_tag) / total_days_in_window * 100
  • Configurable window: 7 / 14 / 28 / 90 days

2. Calendar Heatmap (visual representation)

  • Reuse existing M2 tag-frequency heatmap component
  • No number, no "you failed" moment
  • Visual frequency display only
  • GitHub-contribution-graph style but without any streak counter

3. Correlation Contribution Score (long-term value)

  • Show how strongly a habit contributes to insight quality: "Sport is your strongest mood predictor (r=0.72)"
  • Pulled from M3/M8 insight engine output
  • The real reason why consistent tracking matters — no artificial motivation needed

Impact on M2 Entry-Streak Widget

The M2 entry-streak widget is already implemented. It should be relabeled (not removed):

  • Old: "Streak: 12 days" (gamification framing)
  • New: "Tracking consistency: 12 of last 14 days" (neutral, data-quality framing)
  • Rationale: this is directly linked to the confidence scale from the insight engine — more consistent data = better insights. That is the honest reason to keep tracking.

Acceptance Criteria

  • No streak counter anywhere in the habits UI
  • Adherence Rate shown as primary habit KPI (configurable window: 7/14/28/90 days)
  • Calendar heatmap reused from M2 for habit frequency visualization
  • Correlation Contribution Score shown per habit (requires M3 insight engine data)
  • M2 Entry-Streak widget relabeled to "Tracking consistency: X of last Y days"
  • No badge, points, or reward system of any kind
  • Habit language remains neutral: build / reduce, never good / bad
  • No "you failed" or "streak broken" messaging in any UI state
  • Quality-Gate: Code-Quality-Review + Security-Audit passed

References

  • Core promise: "No gamification, ever — you track your habits, not how often you open the app"
  • ADR-0012: M2/M5 streak semantics (to be updated)
  • M3 Insight Engine (correlation contribution data source)
  • M2 Entry-Streak widget (relabeling only, no schema change)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions