Health Data Analysis Scoring Tool — Easily Calculate Your Health Score
Recently, I've been working on a small personal health management project that requires quickly analyzing daily recorded body temperature, heart rate, and step count, then generating an intuitive score. I searched for open-source solutions, but they were either too complex or had documentation entirely in English, which gave me a headache. Eventually, I discovered a skill called health-analyze. Honestly, it's exactly what I needed—simple, straightforward, minimal code, and the scoring rules are clearly laid out.
Today, I'll share how I use this tool and some practical tips I've picked up along the way. If you're also figuring out how to score health data or want to understand the design approach behind this lightweight skill, this article should be enough for you.
What Does This Skill Actually Do?
In plain terms, you send it three pieces of data—your body temperature (e.g., 37.2°C), resting heart rate (e.g., 75 bpm), and step count (e.g., 8,500 steps)—and it calculates a total score (out of 100) and highlights any problematic indicators.
- Body Temperature: Normal range is 36.0–37.5°C. In this range, you get 30 points; otherwise, 0 points and flagged as abnormal.
- Heart Rate: Normal range is 60–100 bpm. Similarly, full marks of 30 points; otherwise, 0 points and abnormal.
- Steps: ≥10,000 steps gives full marks of 40 points; ≥5,000 but less than 10,000 gives 30 points; less than 5,000 gives 0 points and is marked as "insufficient exercise."
The sum of these three items is your health score. For example, using the data above (37.2°C, 75 bpm, 8,500 steps): temperature gets 30, heart rate gets 30, steps get 30, total score 90, with no abnormal items. Perfect~
// Example input
{"date": "2026-01-20", "data": {"temperature": 37.2, "heart_rate": 75, "steps": 8500}}
// Expected output
{
"status": "analyzed",
"date": "2026-01-20",
"health_score": 90,
"analysis": {
"temperature_ok": true,
"heart_rate_ok": true,
"steps_ok": true,
"issues": []
},
"timestamp": "2026-01-20T10:30:00Z"
}
How Simple Is Installation and Getting Started?
Because it's a Skill built on the sop-engine framework, installation takes just one command:
npx skills add <sop-engine repository> --skill health-analyze
Wait a few seconds and it's installed. Then save the JSON data above into a file (e.g., input.json) and run:
cat input.json | npx skills run health-analyze
The analysis result appears instantly in the terminal. Isn't that super fast? No configuration needed, zero learning curve. Moreover, this skill uses pure JSON input and output, so you can easily call it from your own scripts—for example, using Python's subprocess or Node's child_process to pass the data, collect the result, and render it on the frontend.
A Pitfall I Encountered (and How I Fixed It)
When I first used the skill, I wrote "steps": "8500" (with quotes, as a string), and it threw an error. After checking the SKILL.md file, I realized it expects numeric types. It's a basic issue, but here's a reminder: all input values—temperature, heart rate, and steps—must be numbers (Number), without quotes. Also, the date format should ideally be YYYY-MM-DD; otherwise, the timestamp field might parse incorrectly.
One interesting observation: by default, the skill considers steps ≥5,000 but <10,000 as normal (i.e., steps_ok: true), but awards only 30 points instead of 40. This design choice is smart—it doesn't conflate insufficient exercise with barely passing, providing finer granularity. If you want to change it (e.g., make ≥5,000 steps qualify for full marks), just edit the SKILL.md file in the installation directory, modify the step scoring rule, and rerun the skill. That's the beauty of open source.
When Would You Use This Skill?
- Personal Health Diary: Record the three data points daily and run the scoring at night to see if your "health index" has gone up or down.
- Smart Device Data Aggregation: If your fitness band or watch exports data in JSON format, write a script to extract body temperature, heart rate, and steps, then feed them to health-analyze to generate daily reports.
- Teaching Example: It's great as a teaching material to demonstrate a simple implementation of a "rule engine" or "JSON processing." The logic is transparent, and students grasp it immediately.
- Quick Prototyping: If you're working on a health-related product and don't want to write scoring logic from scratch, you can reuse this skill as your MVP and iterate once you have more users.
A Little Criticism and Expectations
Currently, this skill only supports simple linear scoring for three metrics, without considering more complex factors like age, gender, historical trends, etc. For example, a heart rate below 60 bpm may be normal for an athlete, but the skill uniformly flags it as abnormal. So if you need more professional medical advice, it's best to consult a doctor. As an open-source tool, it provides a solid foundation...