DEV Community

Eastkap
Eastkap

Posted on

The Morning vs Evening Habit Tracker: What the Data Actually Shows

Most habit apps do not care WHEN you complete a habit.

HabitStock does -- and it changes everything.

The Setup

HabitStock visualizes habits as a stock price chart. Every completion drives the price up. Every miss causes decay. But unlike other apps, the price algorithm accounts for when you complete, not just whether you did.

Here is the core timing logic:

function calculatePriceImpact(completionTimestamp, habitConfig) {
  const hour = new Date(completionTimestamp).getHours();
  const isPreferred = isWithinPreferredWindow(hour, habitConfig.preferredTime);

  // Morning completions in preferred window get full credit
  // Evening catch-ups still count -- but with a 15% weight reduction
  const timingMultiplier = isPreferred ? 1.0 : 0.85;

  return BASE_COMPLETION_VALUE * timingMultiplier;
}

function isWithinPreferredWindow(hour, preferredTime) {
  const window = 2; // 2-hour buffer
  return Math.abs(hour - preferredTime) <= window;
}
Enter fullscreen mode Exit fullscreen mode

This is not punishment -- a 15% reduction still rewards completion. But it creates a visible difference in the chart over 30 days.

What the Chart Shows After 30 Days

Morning completers (before 10am): Chart looks like a healthy growth stock. Steady upward trend, small weekend dips, low variance.

Evening catch-up completers (after 8pm): Distinctive sawtooth pattern. Prices drop through the day, spike in the evening. Slightly lower overall price, but higher 48-hour comeback rates after misses.

Mixed completers: Messy charts, but often the most honest representation of real life.

The Surprising Finding

I expected morning completers to dominate every metric. They do not.

Evening completers tend to have better 48-hour comeback rates. When they miss a day, they return faster. My hypothesis: the act of catching up at night trains a recovery reflex that pure morning completers never develop.

In investing terms: morning completers are growth stocks. Evening completers are value stocks with strong fundamentals.

Why This Matters for Habit App Design

Most apps are timestamp-blind. A 6am gym session and a 11:58pm technically-counts get treated the same. That is fine for motivation -- but it hides the timing data that could actually help you understand your patterns.

The stock chart format forces you to see your habit as a time series, not a daily checkbox. Time series have timing signals baked in.

What I Am Still Figuring Out

The 15% timing multiplier is somewhat arbitrary -- picked because it felt meaningful without being punishing. I do not have enough data yet to validate the exact number.

If you want to see your own timing patterns, HabitStock is live and free. The chart will tell you things your streak counter never could.


Morning completer or evening catch-up person? Drop it in the comments.

Top comments (0)