Exercise and workout dataview ideas

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:

10 Likes

I really like the idea, you’ve given me a couple of thoughts that need to percalate a little. Thanks

1 Like

Evening ladies and gents - I’m a noobie to Dataview and could do with some help.

I’m trying to figure out how to access the source element from the YAML.

At the moment, I’m using:

```dataview
table 
from "Podcasts"
where contains(file.source, "Tim Ferriss")
```

Have I got this right?

Thanks very much in advance

1 Like

Try this:

```dataview
table file.mtime 
from "Podcasts"
where source = "Tim Ferriss"
2 Likes

@arminta Interesting in implementing something like this. Did you end up making any changes additional changes after tweaking things?