Welcome to the Way of Life prototyping playground. I'm excited to have you on board as an early tester of one of the most requested features in Way of Life:
A new goal setting feature is currently under development. As part of that process I, Lars, your humble developer, would love to get some feedback before embarking on a full-blown coding frenzy.
I've implemented a prototype for you to play around with, feel free to play first, then read all this. Either way, I'd love your feedback.
Before diving into how Way of Life works today, and how it will work in the future, we have to define what a goal is. A goal is:
If you succeed with either one, Way of Life will mark the day as green. With that in mind we can rewrite the goal definition as:
In Way of Life's infancy, the goal was stated implicitly as:
And your success rate was a simple ratio between the number of green days in a week divided by 7 (days in the week).
It quickly follows that 100% success was only attainable by having seven green days every week.
This works for some habits, however, there was no great way of tracking things like "Exercise 3 times per week".
To solve this problem, "Skipping" was introduced. The user could mark some days as skipped, and the way that impacted the calculation of your success rate was like so
Now, if you logged 3 green days and 4 skipped the equation would be:
Skipping makes it possible to define weekly goals other than " 7 days a week". However, you still have to keep these goals in your head and manually keep track of the number of skips you need, and you have to manually enter them too. The following figure illustrates this for someone with a "3 green days per week" goal.
Still, the app has no clue that you're consciously aiming for "3 days a week", or when this goal came into effect or if you would like to change it up or down and have that registered somehow. The app does a simple calculation based on what you logged and nothing more.
Wouldn't it be nice if you could explicitly tell Way of Life what your goal is? Something like,
Starting this week my goal is to have three green days per week in my Exercise journal, please be smart and mark the remaining days as skipped.
Nice or not, it's what I'm working towards☺. However, the problem I've run into again and again is how to infuse smartness into these "auto-skipped days" for goals that just says "3 times a week" with no clear indication of when the user intends to exercise. Where should these Smart Skips be placed? In the beginning, in the end, randomly? What should happen if the user overwrites a smart-skip? Let's look at the first scenario where we place them at the end.
If you did in fact exercise Mon, Tues and Wed and logged these as green days, well you're all set, and you only had to log 3 times, saving you 4 manual skips. Great. But say you spread out your exercise over the week, then what? What if you exercised Mon, Thu and Sat. Then you would have to manually skip Tue and Wed if you didn't want to leave them empty (which we don't like doing).
Let's try placing the smart skips at the beginning of the week.
This looks good as long as you exercise Fri, Sat and Sun. However, you might decide to exercise Monday, then what? If we overwrite a smart skip, you'll have to put in a manual skip on Fri, Sat or Sun to maintain the 3 times a week goal. We still have to do more entry work than we would like!
Luckily, we can solve this problem quite easily by moving the overwritten smart-skip forward until it finds an empty day, like this:
This way, we don't have to skip later in the week manually. And, we maintain a visual clue as to what our goal is and how many green days we still need to accomplish it, namely 2.
If we keep going with this example and imagine that we exercise Thursday, then we would get this:
Clearly showing us that we only need one more day to accomplish our weekly goal. This method of moving smart-skips forward looks like the right approach: you only need to enter data when needed and you get a visual clue of your weekly goal!
Though placing smart skips at the beginning makes good sense, I think hinting at when you might be, say, Exercising, would provide a better visual representation of your goal. If you know that you prefer to exercise on Mondays, Wednesdays and Fridays a week would look like this:
Tuesday, Thursday, Saturday and Sunday being marked as Smart Skips.
A natural question follows: What if I didn't Exercise Monday after all and manually logged the day as Skipped? this is what would happen:
The app would "borrow" the closest smart skip (looking ahead only), which is Tuesday and use that as your manually skipped Monday. This ensures that you still have a correct visual clue as to your goal of exercising 3 times per week, that is, you still have 3 empty days that you need to log as green to accomplish your goal.
One final addition to smart skips is Ignored days. You may have business-related stuff that you never track on weekends, or calling grandmother only on weekends, or you may know for sure that you never exercise on Fridays. To this end, you would mark a day as Ignored. Say you have a goal of exercising 3 times a week on weekdays:
Saturday and Sunday would be X-marked, and smart skips would never float to an ignored day. However, because I like that Way of Life does not impose too many restrictions on you, you would, of course, be able to overwrite an ignored day as you see fit, but it would not float around like the smart skips, it's a pure overwrite operation.
Okay, now that we have covered setting and maintaining goals, it's time to look at results.
Because this new goal system knows about your goals, an interesting change follows in the bar chart. Imagine our goal is 3 green per week and you logged the following for a given week:
As you can see the green bar is at 100%, meaning you met your goal even though there's a bit of red in there too. In the current/old system the same week would show like this:
With the green bar at 75% because it doesn't know your goal and simply looks at all your entries and calculates a percentage based on the four non-skipped entries (1 red, 3 green). Remember the calculation from the beginning:
Likewise, the new system would allow for bars greater than 100%. Having 4 green days, in a week where you goal is to have 3, the chart would look like this:
One could argue that you shouldn't be allowed to log more than your stated goal, however, I believe you should at least be able to enter more green days than stated in your goal and get a bar chart reading above 100% if you're doing more than expected and use that as a guide for changing your goal perhaps. Also, I like to keep the system as open and flexible as possible. Way of Life is a tool, not a coach.
With a new way of calculating a success rate, I can totally imagine a new kind of graph with a success curve, instead of bar charts, which makes it easier to cover longer periods of time.
Enough talking. Now it's your turn...
I sincerely hope that you like this new approach to setting goals in Way of Life. However, no matter if you like it or not I'd love to get your feedback.
Copyright Way of Life ApS 2019