title: Stats description: Workout history, weekly trends, and achievements entry point.
Stats
Past sessions and progress, reached from the gear menu or via the small chart icon on the My tab. Not a separate tab in MVP (we tested 3-tab vs 4-tab navigation and 3 won), but a first-class screen.
Layout
Header — this week summary
Three big numbers at the top: total minutes, total sessions, current streak. The streak counts consecutive calendar days with at least one completed session (skipping a workout doesn't break it, but a full day off does).
Calendar heatmap
GitHub-style. Each day's intensity is colored by total minutes trained. Tap any day to see the sessions for that day.
Use the ‹ › arrows in the card header (Month view) to browse earlier months — the recap, totals, and history list below all follow the month you're viewing. The back arrow stops at your earliest visible session, and the forward arrow returns you to the current month.
Recent sessions list
Chronological, most recent first. Each row shows: workout name, completion date, total time, completion percentage (if you ended early).
Tap a row → RecordDetail view (same as the post-workout celebration screen).
Weekly trend chart
Bar chart, 7-day rolling. Scrubbable for past weeks. Shows minutes, not session count, because session length varies widely.
Achievements card (bottom)
Tap to open the full Achievements view. The card shows the most recent unlocked badge and a "X more unlocked this month" counter.
Free tier history limit
Free users see the last 7 days only. Older sessions are kept on-device but hidden from the UI — they reappear instantly when you subscribe (or during the welcome trial).
Pro users see all history with no cap. The data has always been stored; the UI just hides it on Free.
This is documented in Free vs Pro.
What's tracked per session
- Workout name (links back to the workout in My tab).
- Start time, end time, total duration.
- Completion state — completed / skipped / ended-early.
- Per-block timing (which blocks were skipped or extended).
- Heart-rate summary (if Apple Watch was paired) — average, max, zone breakdown.
- Cadence summary (if motion data was available).
- BGM source used.
- Coach voice persona used.
This data is written locally in Core Data. Optionally synced to iCloud (off by default; opt in via Settings → iCloud).
Apple Health integration
If you've granted HealthKit write permission, completed sessions write to the Health app's "Workouts" type. The session appears alongside any other tracked activity (Apple Fitness, Strava, etc.) and contributes to your daily ring closures.
Heart rate samples written by the watch during the session are correlated automatically by Apple — RhythmFit doesn't duplicate them.
Exporting
Settings → Account → Export generates a JSON dump of every workout + every session record. The format is documented in the README inside the export bundle.
Useful for analysis (load into a notebook), backup, or migrating to a different app.
What's NOT tracked
- Calories. The Apple Watch tracks calories better than we can — if you want calorie data, look at the Health app's view of the same workout.
- Heart-rate variability (HRV) trends. We read HRV for readiness insights but don't surface trend data in Stats. The Health app's HRV view is the better surface for this.
- Anonymized aggregate stats across users. We don't run analytics for cohort comparison. Your stats are yours.