Scoring System
Your season score reflects your consistency across 90 days. It is calculated as a rolling weekly average, updated every night.
Daily log values
Each habit log entry has one of three statuses:
| Status | Points | Meaning |
|---|---|---|
done | 1.0 | Completed the habit |
skip | 0.5 | Intentionally skipped (counted partial credit) |
miss | 0.0 | Did not do it |
Weekly score
week_score = sum(all log points this week) / (habit_count × 7) × 100
Example: 3 habits, 5 done, 1 skip, 1 miss in a week
points = (5 × 1.0) + (1 × 0.5) + (1 × 0.0) = 5.5
max = 3 × 7 = 21
score = 5.5 / 21 × 100 = 26.2%
Season score
The season score is the rolling average of all weekly scores since the season started:
season_score = average(week_1_score, week_2_score, ..., week_n_score)
It is recalculated every night by a cron job and stored on the UserSeason record as scorePct.
Score milestones
Some badges unlock at score thresholds:
| Score | Badge unlocked |
|---|---|
| 80% | Tiwaz ᛏ (Nord) · Hana 花 (Jari) |
| 95% | Sowilo ᛊ (Nord) · Sora 空 (Jari) |
Leaderboard
The leaderboard ranks all opted-in users by their season score for the current season type. Nord and Jari are ranked separately.