47. That was the number of hours I spent building it. Three weekends. Six late nights. Twelve cups of coffee from Houndstooth on North Lamar. One very patient dog named Pixel who learned to sleep under my desk instead of on the couch. I built a custom BMI tracking dashboard. Not because I needed one — there are a hundred apps that track weight. But because I wanted to understand what happens when you build a tool for yourself instead of downloading one made for everyone. The answer was unexpected. The dashboard was not the point. The building was the point. And the data I discovered while building it changed how I think about my own body.
I am a data analyst. I used to build dashboards for stock prices. Now I build them for my own body. I track everything — weight, BMI, body fat, muscle mass, sleep, HRV, steps, calories, mood, energy, productivity, and the number of times Pixel sighs at me when I check my phone instead of throwing her ball. The sighs are not in the dashboard. Yet. But everything else is. And the process of building the dashboard forced me to confront questions that no app ever asked me.
Here is what the data says. I started with a simple question: what do I actually want to know about my body? Most apps show weight over time. A line graph. Up and down. Good and bad. But weight is not the metric I care about. I care about trends. I care about variance. I care about whether my weight is stable, increasing, or decreasing in a way that is statistically significant, not just visually apparent. So I built a moving average module. It takes daily weights, calculates 7-day and 14-day moving averages, and compares the current average to the previous average. The output is not a number. It is a direction: stable, gaining, losing, or uncertain. The "uncertain" category is the most important. It appears when the variance is too high to determine direction. It prevents false conclusions. It prevents panic. It prevents celebration. It just says: wait. Collect more data. The trend will emerge.
Calculate your BMI instantly with visual category charts and history storage.
All data stays in your browser — we never see it.The anomaly detection module was the second feature. I wanted the dashboard to flag unusual readings. Not just high or low. Unusual. Statistically unusual. I implemented a simple z-score algorithm. Any daily weight more than 2 standard deviations from the 30-day mean gets flagged. The first anomaly it caught was a 3.2-pound jump after a night at The Driskill hotel. The dashboard flagged it. I clicked on it. I saw the note I had logged: "hotel, poor sleep, high sodium dinner." The anomaly was explained. It was not a body change. It was an environment change. The dashboard taught me to separate signal from noise. Not by being smart. By being systematic.
The correlation module was the third feature. I wanted to know which variables predicted weight changes. I pulled in sleep data, HRV, calorie estimates, step counts, and workout intensity. I ran Pearson correlations against next-day weight change. The results were surprising. Sleep duration: -0.12. Not significant. HRV: -0.08. Not significant. Steps: -0.15. Weak. Calorie estimate: 0.31. Moderate. But the strongest predictor was sodium intake: 0.47. Moderate-strong. The more sodium I ate, the more my weight increased the next day. Not because of fat. Because of water. The dashboard revealed that my weight fluctuations were driven more by salt than by calories. This changed my behavior. Not because I stopped eating salt. But because I stopped panicking about post-taco weight spikes.
The body composition integration was the fourth feature. I connected my Withings scale's API to pull body fat percentage, muscle mass, bone mass, and water percentage. The dashboard now shows four trend lines: weight, body fat, muscle, and water. The most interesting pattern: when my water percentage spikes, my body fat percentage drops. The scale thinks I am leaner when I am hydrated. This is an artifact of bioimpedance — water conducts electricity better than fat, so higher hydration reduces impedance, which the scale interprets as lower body fat. The dashboard now shows a "hydration-adjusted body fat" estimate that corrects for this artifact. It is not perfect. But it is better than the raw number. And it prevents the false celebration of "leaner" days that are actually just "more hydrated" days.
Estimate body fat percentage using the US Navy tape method and BMI-based formulas.
All data stays in your browser — we never see it.The forecasting module was the fifth feature. I wanted to predict my weight 30 days in the future based on current trends. I used a simple linear regression on the 14-day moving average. The forecast is not accurate — life is not linear — but it is useful. It shows me where I am heading if nothing changes. If the forecast says I will gain 2 pounds in 30 days, I can adjust. If it says I will lose 1 pound, I can relax. The forecast removes the daily anxiety. It replaces it with a longer-term perspective. And the longer-term perspective is calmer. More rational. Less reactive.
The most unexpected insight came from the "notes" field. I added a free-text note to every daily entry. "Tacos with friends." "Stressful work day." "Pixel ate a sock." "Good sleep." "Bad sleep." Over time, the notes became the most valuable part of the dashboard. I could search them. I could correlate them. I could see that "tacos with friends" days had higher weight the next morning but lower stress scores. That "stressful work day" days had higher weight and lower HRV. That "Pixel ate a sock" days were just expensive. The notes added context that no sensor could capture. They turned the dashboard from a data tool into a diary. And the diary revealed patterns that the data alone could not.
Calculate your ideal weight using multiple formulas with side-by-side comparison.
All data stays in your browser — we never see it.I brought the dashboard to a Gevity meetup on East Cesar Chavez. A software engineer named Dave — he builds health apps for a living — looked at it and said, "This is terrible UX. No one would pay for this." He was right. The interface is ugly. The colors clash. The fonts are inconsistent. The mobile view is broken. But I built it for me. Not for a market. Not for a user base. For me. And that is why it works. It asks the questions I care about. It shows the data I want to see. It ignores the metrics I do not care about. It is not a product. It is a mirror. And mirrors do not need good UX. They just need to reflect accurately.
The building process also taught me about my own psychology. I discovered that I check the dashboard when I am anxious. Not when I need information. When I need comfort. The numbers are a security blanket. They tell me that my body is predictable. That my choices have consequences. That I am in control. Even when I am not. The dashboard reveals my anxiety. It does not solve it. But it makes it visible. And visibility is the first step toward management.
I also discovered that I am more consistent when I track. Not because tracking causes weight loss. But because tracking causes awareness. And awareness causes better decisions. The dashboard does not make me eat less. It makes me notice when I eat more. It does not make me sleep more. It makes me notice when I sleep less. The noticing is the intervention. The data is the mirror. And the mirror does not lie. Even when I want it to.
So here is what I learned from 47 hours of dashboard building. First, the tool you build for yourself is better than the tool you download for everyone. Because it fits your brain. Your questions. Your anxieties. Your goals. Second, the process of building reveals more than the product. The questions you ask while building are more valuable than the answers the dashboard provides. Third, context matters more than data. The notes field is more valuable than the sensor data. Because life is not measured in pounds. It is measured in moments. And the moments explain the pounds. Fourth, forecasting reduces anxiety. Even inaccurate forecasts. Because they shift focus from today to tomorrow. From panic to planning. From reaction to intention.
I will keep building. I will keep adding features. I will keep breaking things and fixing them. Because the dashboard is never finished. It is a living document. A conversation between me and my body. And conversations evolve. They deepen. They surprise. And sometimes, they reveal truths that neither party expected. Like the fact that sodium matters more than calories. Like the fact that sleep matters less than I thought. Like the fact that my weight is not a moral judgment. It is just a number. In a dashboard. That I built. With my own hands. And my own questions. And my own dog sleeping under the desk. And that is enough. That is more than enough. That is everything.
Pixel has learned to ignore the dashboard. She cares about one metric: walks per day. And she tracks it with her internal clock, which is more accurate than any wearable I have tested. When it is walk time, she sits by the door and stares at me. No notification. No vibration. Just judgment. Pure, unconditional, data-free judgment. And I close the laptop. And I grab the leash. And we walk. And the dashboard waits. Because the dashboard will always be there. But the sunset on the Butler Trail will not. And the data says: prioritize the sunset. Even if it is not in the spreadsheet. Especially if it is not in the spreadsheet. Because some metrics cannot be measured. And those are the ones that matter most.