I’m still redoing a bunch of metadata for my fitness stuff so some of these aren’t completely filled out with examples, but I wanted to post some ideas for using obsidian and dataview to track workouts.
name Add Workout
type note(New Workout) template
action Workout Template
class dataview-button
table Date, Type, set-type, planned-rpe, Sets, Reps, max-hr, Calories
from #workouts
sort date desc
#databases
Area:: Fitness
#workouts
Date::
Type::
Set Type::
Planned RPE::
Sets::
Reps::
Computed Conversion Multiplier:: =choice(this.Reps = 2, 0.97, choice(this.Reps = 3, 0.94, choice(this.Reps = 4, 0.92, choice(this.Reps = 5, 0.89, choice(this.Reps = 6, 0.86, choice(this.Reps = 7, 0.83, choice(this.Reps = 8, 0.81, choice(this.Reps = 9, 0.78, choice(this.Reps = 10, 0.75, choice(this.Reps = 11, 0.73, choice(this.Reps = 12, 0.71, choice(this.Reps = 13, 0.7, choice(this.Reps = 14, 0.68, choice(this.Reps = 15, 0.67, choice(this.Reps = 16, 0.65, 1)))))))))))))))
Conversion Multiplier::
Exercises::
Max HR::
Average HR::
Duration::
Calories::
Distance::
Cardio::
LISS::
Recovery::
Mobility::
Warmup:
Today’s Exercises
table number(master-exercise.one-rep-max) * number(this.conversion-multiplier) * number(this.planned-rpe) as "Goal Weight", Weight, choice(number(master-exercise.one-rep-max) * number(this.planned-rpe) < Weight, "✅", "-") as PR, master-exercise as "Master Exercise", this.sets as Sets, this.reps as Reps, weight/number(this.conversion-multiplier) as "Today's 1 Rep Max"
from #exercises
where Workout = this.file.link
sort file.name desc
Notes:
Admin
- Update Max Weights if applicable
table master-exercise, master-exercise.one-rep-max as "1 Rep Max"
from #exercises
where Workout = this.file.link
sort file.name asc
name Add Exercise
type note(New Exercise) template
action Exercises Template
class dataview-button
table date as date____, pr, master-exercise as master_exercise____, workout as workout____, master-exercise.family, master-exercise.one-rep-max
from #exercises
where !contains(file.name, "Template")
sort date asc
#exercises
Date::
Master Exercise::
Workout::
PR::
Computed One Rep Max:: =this.master-exercise.rep-max
One Rep Max::
Computed Sets:: =this.workout.sets
Sets::
Computed Reps:: =this.workout.reps
Reps::
Weight::
Goal Weight::
Computed Planned RPE::=this.workout.planned-rpe
Planned RPE::
Conversion Multiplier::
Todays Rep Max::
table Family, one-rep-max as "1 Rep Max", workouts, exercises, muscle-groups
from #masterexercise
where !contains(file.name, "Template")
sort family asc
There are still things that I’m tweaking, but should give you some ideas and I’ll try to update this with improvements I make.
Related: