KinesteX

Workout Events

Events for workout lifecycle and statistics.


EventData FieldsDescription
workout_openedtitle: string, id: string, date: stringWorkout details page opened
workout_startedid: string, date: stringWorkout session started
workout_started (alt)workoutId: stringAlternative workout start format
workout_completedworkout: string, date: stringWorkout finished, user exits overview
workout_endedid: string, exit_type: string, date: stringWorkout session ended (see exit_type values below)
workout_overviewdata: objectComplete workout summary statistics

workout_ended exit_type values:


ValueMeaning
completeUser finished the entire workout including outro
exitUser abandoned the workout mid-session
outroUser exited from the outro/cooldown screen after completing all exercises

workout_overview Data Structure:

typescript
1{
2  workout_title: string,            // Workout name
3  workout_id: string,               // Unique workout ID
4  target_duration_seconds: number,  // Target workout duration (seconds)
5  workout_duration_seconds: number, // Total wall-clock session time
6                                    // (includes rest, transitions, pauses).
7                                    // For challenges/assessments this equals
8                                    // total_time_spent (no wall-clock concept)
9  total_time_spent: number,         // Active exercise time only (seconds)
10  completed_reps_count: number,     // Total completed reps
11  target_reps_count: number,        // Total target reps
12  calories_burned: number,          // Calories (2 decimal places)
13  completion_percentage: number,    // Completion % (2 decimals)
14  total_mistakes: number,           // Total mistake count
15  accuracy_score: number,           // Overall accuracy (0-100)
16  efficiency_score: number,         // Efficiency metric (0-100)
17  total_exercise: number,           // Number of exercises
18  actual_hold_time_seconds: number, // Time in correct position
19  target_hold_time_seconds: number  // Target hold time
20}

Note: Use workout_duration_seconds to display or log the full session time (including rest periods). Use total_time_spent if you only need active exercise time.

Handling Workout Overview
1case .workout_overview(let data):
2    if let calories = data["calories_burned"] as? Double,
3       let completion = data["completion_percentage"] as? Double {
4        print("Burned \(calories) cal, \(completion)% complete")
5    }