#242 - Feature: The Life Tracker

9 minute read

Motto: This Column May Set a Record for the Greatest Number of "I" Uses. Not proud.

This Column is going to take a deep dive "Inside Baseball". Moreso than most of my other posts, I'm writing this for my own gratification. I'm going to write about the Life Tracker, it's history, and where I see it going in the future.

After you move out of your parent's house and go to college it can be difficult to find a well-balanced life. Eventually, the school itself will provide a structure around which you can build a path to success (or failure, you're call). After college, there's work... for whatever reason, my life in the working world didn't lend itself to structure as well as my life in college. All the sudden I was 100% responsible for what I ate, what I did with my time, and what I spent this newfound income on. 

While that challenge is a great privilege, it was still a stressful time when I really REALLY realized what it meant. I felt like I had to keep track of these disparate things that happened in my life or else I'd wake up some day in a heap of trouble to find that something had really gotten away from me.

I told my soon-to-be-fiance that I was interested in some sort of elaborate notetaking system. After listening to me talk about my needs, she suggested I look at Google Forms. So I did. 

Google Forms are essentially just surveys you can create, distribute, and use to gather data. Responses to Google Forms are put in an accompanying Google Spreadsheet. So I created a form I could bookmark and use whenever I found myself in a situation where I needed to track some action I did (eating, spending money, exercising, etc). That all got dumped onto a single Google "Sheet". It worked, the data was there, but it wasn't very pretty.

Enter JavaScript.

I had built some Macros in Microsoft Excel that did much fancier things than just "move data", so I figured there had to be some easy way to create something I could use to pull out the data from this one core dump sheet into separate, dedicated sheets. Turns out Google uses JavaScript and not the Visual Basic I was used to, so it took a couple of weeks to figure out what I was doing. The same day I finally figured out how to programatically place a value into a cell I had my first working prototype of what would over the course of the next month become...

Life Tracker 1.0

The first major version of the Life Tracker let me track money (every dollar), food (every item), exercise (every rep), and "Demetri Goals". Each of these four major facets had their own, dedicated sheet. I didn't use any 3rd party resources for anything. If I ate a hamburger, I pulled up my Google Form. If I did a workout, I pulled up my Google Form. If I spent money, I pulled up my Google Form. Each night before I went to bed, I pulled up my Google Form.

I ran the Life Tracker that way with 75% success for a long time. I eventually gave up on tracking money. I had a hard time keeping up with that for some reason. Diet, exercise, and "Demetri", I did manage to track. After a year, I decided I wanted to put together my data and see what type of correlations I could find hidden in the data. I was interested in some questions that you couldn't answer looking at any one sheet.

Did I eat more on days when I exercised?
Was I more productive on days when I exercised?
Did I eat more on days when I went to see friends?

Turns out, this was difficult. Took me a month to pull the data part and put it back together in a way that made sense. I eventually answered those questions (slightly, slightly, and yes were those answers, by the way) and decided that I wanted to keep on doing what I was doing, but I wanted to do it smarter. 

I got zero value out of keeping the diet, exercise, money, and Demetri information on separate sheets. Also, I realized I didn't actually care about individual reps, individual food items, or individual purchases. I just cared HOW I lifted, HOW I ate, and HOW MUCH I spent. Also, I got very tired of entering data several times a day. I wanted to keep a journal of events about what kinds of things I spent my days, weeks, and months doing.

Life Tracker 2.0

The second (and current) major version of the Life Tracker did away with individual sheets. Analytics were built directly into this new "supersheet" (as it was referred to in the code). Now I could see immediately what my macronutrient ratio was in percents for the previous day. I also did away with homegrown data entry for money, diet, and exercise. I rely on Android Apps to do those things now. At the end of the day I just have to summarize my total calories, fats, carbs, and protein intakes each day. I still use Google Spreadsheets to do data entry, but now I'm only doing it once a day. It takes less than 4 minutes to fill out the form, then I'm done. I added in a journal for me to summarize my day in a few sentences. 

More recently, after I got my Moto 360, I added in sleep metrics. How much did I get? When did I start? I wanted to know if sleep duration would have any measurable impact on my performance in my "goals list" (formerly known as "Demetri list"). Also, I added a qualitative "how are you feeling" metric and a pedometer readout. Did my mood improve on days when I slept more/walked more? 

That's where I've been, and where I am today... but where am I going?

"Life Tracker 3.0" a.k.a. "Project Insight" a.k.a. "A Quantum of Selfus" a.k.a. "LittleBigData"

The next refresh is about to get underway. Like the transition from 1.0 to 2.0, I will utilize the my knowledge and experience to improve the efficacy of the system, while diminishing the effort necessary to keep it running. Here are my goals:

Less reliance on Google
I love Google, and there will still be a large part of it in the new system, but I'd like to cut reliance upon their systems for data storage (and possibly analytics). I'd like to be able to host my system on my own server.

Automatic data entry
Each night I pull up 5 apps: Chrome, LifeSum, Google Fit, Withings, and Sleep as Android. Chrome I pull up to do the data input, the other 4 I use to just pull the most recent data. The thing is, that shouldn't have to happen. I should be able to pull data for all four of these apps and have it put into the Life Tracker automatically. This could probably also be done for Mint financial tracking. I've seen some really positive signs for all of the above being possible.

Not just me
I'd like to build something that is adaptable and easy to use. Ideally, it could be something that I could just hand over to Joe Schmoe off the street and he'd be able to use it to track the stuff he wants in his life. If I de-centralize it (off Google's servers) then Joe Schmoe could use it 100% on his own machine if he were so inclined. #privacyconcernsresolved

Also on the "not just me" front, I plan on pulling in external information where it makes sense. My first idea for this would be tracking the weather. It could be interesting to see how rain affects my productivity, for example.

Support for incomplete data sets
I missed doing my daily survey this Thursday. Because Ia missed a day, I have to scrap the whole week. This means the bike ride I went on today won't show up if I'm looking for biking trends. I lost my trek up the Manitou Incline a couple weeks back because I didn't want to track food during a vacation. I can't just leave food blank, because it will skew everything. I am going to build in support for a "on days for which you have data"-type filtering.

Refined tracking points
There's a few things I'm going to change within the data. "How are you feeling" needs to be more clearly defined and needs to allow for truly neutral responses. Exercises shouldn't be limited to one-a-day and shouldn't be limited to the pre-defined types I used. I'll likely move to a tag-based exercise system. I did heavy, lower, cardio, and worked out outside. Also, I'd like to be able to tag days with events. I napped today. I also ate out for dinner. 

Also on this front, metatracking. When did I enter the data for each day? Given that I will open up the possibility for non-complete data sets, how complete is my entry log for a given week?

Those are my goals. They come and go. I've been thinking about them for a few months now. I can't wait to get started.

Top 5: Charts I Just Made from the Life Tracker
5. My exercise goes through a rise/fall pattern every week.

4. I eat on an every-other-day cycle on average.

3. This is a spoiler for #1 - but it also shows how that month of Paleo affected my macros.

2. Sleep by day of week. I like this one because it just shows that the data reflects things that are obvious.

1. Year over year, I'm eating better. This is awesome.

“You could call it 'the obsessively tracking every little part of your life system'!”
- Joe, or Jon, or Josh, I can't remember which, after I asked for a new name for the Life Tracker. Thanks for that, btw. -