Back in 2019, I started collecting all kinds of metrics about my life. Every single day for the last 3 years I tracked over 100 different data types - ranging from fitness & nutrition to social life, computer usage and weather.
The goal of this project was to answer questions about my life, like
Since the start of this project, I collected ~380,000 data points, with the biggest data sources being:
| Data Source | Number of data entries | Type of data |
|---|---|---|
| RescueTime | 149,466 | Daily computer usage (which website, which apps) |
| Foursquare Swarm | 126,285 | Location and POI data, places I've visited |
| Manually entered | 67,031 | Fitness, mood, sleep, social life, health, nutrition, energy levels, TV, stress, ... |
| Manually entered date ranges | 19,273 | Occupation, lockdown status, living setup |
| Weather API | 15,442 | Temperature, rain, sunlight, wind |
| Apple Health | 3,048 | Days of steps data |
Naturally after I started collecting this data, I wanted to visualize what I was learning, so I created this page. Initially, the domain whereisFelix.today (now renamed to howisFelix.today) started as a joke to respond to friends asking when I’d be back in NYC or San Francisco. Rather than send them my schedule, I’d point them to this domain. However, now it’s more than my location: it’s all of me.
Rules I setup for the project
I selected 48 graphs to show publicly on this page. For privacy reasons, and to prevent any accidental data leaks, the graphs below are snapshots taken on a given day.
Visualization of the number of data entries in FxLifeSheet over the last 10 years, and where the data came from.
10 years of data - Last updated on 2022-01-01
On days where I tracked my mood to be "happy" & "excited", the following other factors of my life were affected
Manually
2.5 years of data - Last updated on 2022-01-01
All flights taken within the last 7 years, tracked using Foursquare Swarm, analyzed by JetLovers.
JetLovers, Swarm
7 years of data - Last updated on 2022-01-01
All flights taken within the last 7 years, tracked using Foursquare Swarm, analyzed by JetLovers.
JetLovers, Swarm
7 years of data - Last updated on 2022-01-01
Inspired by Your Life in Weeks by WaitButWhy, I use Google Sheets to visualize every week of my life, with little notes on what city/country I was in, and other life events that have happened.
Manually
27.5 years of data - Last updated on 2022-02-24
Average daily steps measured through the iPhone's Apple Health app. I decided against using SmartWatch data for steps, as SmartWatches have changed over the last 8 years.
Apple Health
8 years of data - Last updated on 2022-01-01
This graph clearly shows the correlation between my body weight and my sleeping/resting heart rate. The resting heart rate is measured by the Withings ScanWatch while sleeping, and indicates how hard your heart has to work while not being active. Generally the lower the resting heart rate, the better.
Withings ScanWatch, Withings Scale
1.5 years of data - Last updated on 2022-02-09
Every day I answered the question on how healthy I felt. In the graph, the yellow color indicates that I felt a little under the weather, not sick per se. Red means I was sick and had to stay home. Green means I felt energized and healthy.
Manually
2.5 years of data - Last updated on 2022-01-01
On days where I had more than 4 alcoholic beverages (meaning I was partying), the following other factors were affected
Manually
2.5 years of data - Last updated on 2022-01-01
My FxLifeSheet bot asks me 4 times a day how I'm feeling at the moment.
Manually
4 years of data - Last updated on 2022-01-01
Every Swarm check-in over the last 7 years visualized on a map, including the actual trip (flight, drive, etc.)
Swarm
7 years of data - Last updated on 2022-01-01
Every Swarm check-in over the last 7 years visualized, zoomed in
Swarm
7 years of data - Last updated on 2022-01-01
Each time I did a check-in at a place (e.g. Coffee, Restaurant, Airport, Gym) on Foursquare Swarm at a given city, this is tracked as a single entry.
Swarm
7 years of data - Last updated on 2022-01-01
Each check-in at a given city is counted as a single entry, grouped by years
Swarm
7 years of data - Last updated on 2022-01-01
Each check-in at a given category is tracked, and summed up over the last years
Swarm
7 years of data - Last updated on 2022-01-01
Number of Foursquare Swarm check-ins on each quarter over the last 10 years. I didn't use Foursquare Swarm as seriously before 2015. Once I moved to San Francisco in Q3 2015 I started my habit of checking into every point of interest (POI) I visit.
Swarm
10 years of data - Last updated on 2022-01-01
Every Swarm check-in visualized on a map. Only areas where I've had multiple check-ins are rendered.
Swarm
7 years of data - Last updated on 2022-01-01
Number of days per year that I've spent in full lockdown, meaning restaurants, bars and non-essential stores were closed.
Manually
3 years of data - Last updated on 2022-01-01
How was my life affected by the recent COVID lockdowns? As lockdown day I classify every day where places like restaurants, gyms and non-essential stores were closed.
Manually
3 years of data - Last updated on 2022-05-23
Alcoholic drinks per day. Days with no data are rendered as white
Manually
2.5 years of data - Last updated on 2022-01-01
Each bar represents a month, the graph shows the number of alcoholic beverages on a given day, with '5' being 5 or more drinks.
Manually
2.5 years of data - Last updated on 2022-01-01
Each green square represents a strength-workout in the gym, I try my best to purchase day passes at gyms while traveling
Manually
7 years of data - Last updated on 2022-01-01
On weeks where I have a routine (not traveling), I track most of my meals. Whenever I scale my food, I try to guess the weight before to become better at estimating portion sizes.
MyFitnessPal
4 years of data - Last updated on 2022-02-17
Percentage of days I went to the gym
Manually
2.5 years of data - Last updated on 2022-01-01
I'm following a pretty regular bodybuilding routine, a 3-day workout split, and a normal bulk & cut seasons
Manually
4 years of data - Last updated on 2022-01-01
Historic weight, clearly showing the various bulks and cuts I've made over the years. Only the last 5 years are rendered in this graph, with the last 3 years having tracked my weight way more frequently.
Withings Scale
9 years of data - Last updated on 2022-02-17
I usually have slow bulk & cut phases, where I gain and lose weight at a controlled speed, combined with tracking my meals.
Withings Scale, weightgrapher.com
1 years of data - Last updated on 2022-01-01
On days where I walked more than 15,000 steps (I walked an average of 9200 steps a day the last 3 years)
Apple Health
2.5 years of data - Last updated on 2022-01-01
On days where I had a total sleep duration of more than 8.5 hours, the following other factors were affected
Withings Scan Watch, Manually
2.5 years of data - Last updated on 2022-01-01
I used the Awair Element at home in Vienna, in every room over multiple days
Awair
1 years of data - Last updated on 2022-02-09
Using RescueTime, I tracked my exact computer usage, and the categories of activities in which I spend time with.
RescueTime
7 years of data - Last updated on 2022-01-01
Summer (being from 21st June to 23rd September) has the following effects on my life:
Manually
2.5 years of data - Last updated on 2022-01-01
Winter (being from 21st Dec to 20th March) has the following effects on my life:
Manually
2.5 years of data - Last updated on 2022-01-01
Percentage of days spent in each country over the last 4 years
Manually
4 years of data - Last updated on 2022-01-01
From late 2017 to early 2020 I lived without a permanent home address as a digital nomad, staying at various Airbnbs or taking over a few weeks of a lease from a friend
Manually
7 years of data - Last updated on 2022-01-01
Number of days each month where I had cold symptoms (dark green [1] = day with cold symptoms), which I classify as having a runny nose, feeling light-headed or having light ear pain.
Manually
2.5 years of data - Last updated on 2022-01-01
Weekends for me naturally involve less working time, more going out, and social interactions, as well as visiting family members outside the city
Manually
2.5 years of data - Last updated on 2022-01-01
Historic weather data based on the location I was at on that day based on my Swarm check-ins. Days with no data are rendered as white
Visual Crossing historic weather data, Swarm
3 years of data - Last updated on 2022-01-01
Historic weather data based on the location I was at on that day based on my Swarm check-ins.
Visual Crossing historic weather data, Swarm
3 years of data - Last updated on 2022-01-01
My radiation exposure, as well as CO2 emissions from all my flights over the last 7 years
Nomadlist
7 years of data - Last updated on 2022-04-28
I noticed myself feeling more refreshed whenever I spent a night at my childhood bedroom at my parents' on the countryside.
Withings ScanWatch, Manual
1 years of data - Last updated on 2022-05-30
Spotify tracks every single interaction on their end, including every single song you've ever listened to, and if you finished or skipped each song.
Spotify
9 years of data - Last updated on 2022-05-01
Since I've built instapipe.net, I have all my Instagram Stories available in my own database. The blue 'Monthly' area shows the monthly average of IG stories posted, while the green shows the 'Quarterly' average and purple the 'Yearly' average.
3 years of data - Last updated on 2022-06-01
On days with a maximum temperature of more than 26 Celsius (78.8 Fahrenheit), the following other factors were affected
Visual Crossing historic weather data, Manually
2.5 years of data - Last updated on 2022-01-01
GitHub open source contributions visualized using GitHub's own contribution graph. The graphs only count code commits to open source repositories.
GitHub
11 years of data - Last updated on 2022-01-01
Every second week I track my current investments and cash positions. It shows me how to most efficiently re-balance my investments in case they're off track, while also minimizing the occuring trading fees.
Manually
8 years of data - Last updated on 2022-02-09
Inspired by a Reddit finance community, I had been creating annual money flow charts to clearly see how much money I earned, where I spent how much, and how much I saved. The chart below isn't mine (for privacy reasons), but just an example I created.
Chase Credit Card Year Summary, sankeymatic.com, Manually
5 years of data - Last updated on 2022-02-09
This project is custom-built for my own personal use, the resulting code is 100% open source on KrauseFx/FxLifeSheet. There are 3 components to this project:
• Database
A timestamp-based key-value database of all data entries powered by Postgres. This allows me to add and remove questions on-the-fly.

Each row has a timestamp, key and value.
timestamp is the time for which the data was recorded for. This might differ from imported_at which contains the timestamp on when this entry was created. Additionally I have a few extra columns like yearmonth (e.g. 202010), which makes it easier and faster for some queries and graphs.key describes what is being recorded (e.g. "weight", "locationLat", "mood"). This can be any string, and I can add and remove keys easily on the fly in the FxLifeSheet configuration file without having to modify the database.value is the actual value being recorded. This can be any number, string, boolean, etc.Early on in the project I made the decision not to associate an entry to a specific day due to complexities when traveling and time zones, since the idea was just to detect trends using the collected data. It became clear that detecting trends is only a small part of what can be done with the data, so I wrote a script to associate each entry to the correct date.
• Data Inputs

To populate the data, I manually answer questions multiple times a day through a Telegram bot. These questions span from fitness or health (e.g. nutrition, exercise, sleep, etc.) to questions about my life (e.g. how I’m feeling, how much time I spend on social media, etc.). The extensible use of the Telegram API made this easy, and even allowed me to customize the keyboard to have predefined replies based on the question asked.
Additionally I can fill-out date ranges with specific values, for example lockdown periods, and bulking/cutting fitness seasons.
• Data Visualizations
After having tried various tools available to visualize, I ended up writing my own data analysis layer using Ruby, JavaScript together with Plotly. You can find the full source code on KrauseFx/FxLifeSheet - visual_playground.
I actually published many privacy projects for iOS. That little green/orange LED that’s rendered on iOS when you record something? Yep, that was me! So why this project?
Yes, you could. However, setting up FxLifeSheet is a bit of a challenge and requires engineering skills and time. Some of the features are specific to my life (like the services I use), and so you’d have to modify parts of the codebase. This project is 100% open source MIT licensed, so you can use, and modify everything to your liking. However, I don’t plan on productionizing this project, nor providing any support on GitHub for it.
Realistically, if you want to get started with QuantifiedSelf, you can use one of the services availalbe. I’d recommend looking for the following:
I’ve always been fascinated by tracking my own data, and seeing it visualized. While I can’t pinpoint the reason why, I remember having this fascination growing up, asking myself questions like How many steps did I walk in my life?, and Did I turn right more often or left?.
Having read many articles similar to r/QuantifiedSelf/, I really loved the visualizations, but disliked the fact that almost all solutions were data-silos (e.g. standalone iOS apps, Gyroscope, …) without having full control over the data, nor how it’s visualized. Because the data collection spans multiple years, I was apprehensive to rely on any startup or service that runs the risk of being shut down. Additionally, every individual may have differences in how they want to visualize or analyze the data.
Apple was in a great position to improve the current state with Apple Health, but they completely failed with their implementation on both the APIs, as well as the actual Health app.
One aspect I overestimated is the number of days you will track: If you want to look into how many steps you walked in a given city, you’ll quickly notice the number of days in each city already being quite low. You’d then also slice the data by season or temperature, since you naturally walk less on very cold days, ending up with only a handful of days outside your main residence.
Overall, having spent a significant amount of time building this project, scaling it up to the size it’s at now, as well as analysing the data, the main conclusion is that it is not worth building your own solution, and investing this much time. When I first started building this project 3 years ago, I expected to learn way more surprising and interesting facts. There were some, and it’s super interesting to look through those graphs, however retrospectively, it did not justify the hundreds of hours I invested in this project.
I’ll likely continue tracking my mood, as well as a few other key metrics, however will significantly reduce the amount of time I invest in it.
I’m very happy I’ve built this project in the first place, as it gave me a much better awareness of everything going on in my life. I’m excited to have built this website to wrap-up this project and show-case some of the outcomes to the public.
2025 Update: I’ve stopped collecting data and working on this project, but I will keep this page alive.