lukaselflein / team-train

A SPA for coordinating gamified workouts in sports teams.
MIT License
0 stars 0 forks source link

Value: Current Fitness #11

Closed LeviIV closed 4 years ago

LeviIV commented 4 years ago

It'd be interesting to add point value for current fitness.

A total sum of points doesn't say much about fitness, if people haven't trained in a while.

Use this issue to invent an algorithm

LeviIV commented 4 years ago

Simple:

IF SUM[days without training]<=7

THEN [Fitness (today)] = [Fitness (today -1 day)] + [training since yesterday]

ELSE IF SUM[days without training] > 7 AND <= 100 THEN [Fitness (today)] = [Fitness (today - SUM[days without training])] - ([Fitness (today - SUM[days without training])] 0,003 SUM[days without training])

ELSE IF SUM[days without training] > 100 THEN [Fitness (today)] = [Fitness (today - SUM[days without training]+100)] - ([Fitness (today - SUM[days without training]+100)] 0,0015 SUM[days without training])

UNTIL [Fitness (today)] = 0

lukaselflein commented 4 years ago

Let's ask Rene about this, afak there are a few more reliable proxies for fitness. One is max-rep, which we could squeeze into an advanced version of the training-plans.

A total sum of points doesn't say much about fitness, if people haven't trained in a while.

Yea, so far I have seen the points more as a gamification/competion thingy than as a good measure of fitness.

LeviIV commented 4 years ago

Yea, so far I have seen the points more as a gamification/competion thingy than as a good measure of fitness.

Yep. But this keeps people on their toes. If you don't add points you'll loose them over time while others keep training. And what a team achieved a year ago shouldn't mean anything for a competition in Motivation

lukaselflein commented 4 years ago

Yep. But this keeps people on their toes.

I don't like discrete time-steps for discounting stuff, but I would be onboard with a decaying function like score(t) = score(t_0) * exp(-kt) Which would make your current score(t) exponentially less than the original score, e.g., a week ago score(t_0). This should motivate you to keep training. Alternatively, we can jut display a floating average with a decaying window encompassing a few weeks, which should be equivalent.

LeviIV commented 4 years ago

I don't mind. I'd just want the logic to leave the point stable for a week. Then for the slope to get a bit more dramatic over the next 10-12 weeks and then slow down.

Should be easy enough for you to implement?

lukaselflein commented 4 years ago

will not be implemented in MVP