Body composition
BLE Scale Sync computes body composition from the weight, the impedance the scale measures through your feet, and the user's height, age and sex. Scales that compute their own values are used as they are, under the conditions on their scale pages.
Exported metrics
| Metric | Unit | Description |
|---|---|---|
| Weight | kg | Scale reading |
| BMI | (none) | Body mass index |
| Body fat | % | From impedance (BIA), from the scale, or estimated from BMI |
| Water | % | Total body water |
| Bone mass | kg | Estimated bone mineral content |
| Muscle mass | kg | Fat-free mass minus bone, or the scale's own value |
| Visceral fat | 1-59 | Internal organ fat rating |
| BMR | kcal | Basal metabolic rate |
| Metabolic age | years | Age whose BMR matches yours |
| Physique rating | 1-9 | Body type from body fat and muscle ratio |
| Skeletal muscle | % | Only from a scale that reports it |
Formulas
Body fat (BIA)
With a usable impedance, body fat comes from Bioelectrical Impedance Analysis, with height in cm and impedance in ohm:
LBM = c1 * (height^2 / impedance) + c2 * weight + c3 * age + c4
Body Fat % = (weight - LBM) / weight * 100| c1 | c2 | c3 | c4 | |
|---|---|---|---|---|
| Male | 0.503 | 0.165 | -0.158 | 17.8 |
| Male (athlete) | 0.637 | 0.205 | -0.180 | 12.5 |
| Female | 0.490 | 0.150 | -0.130 | 11.5 |
| Female (athlete) | 0.550 | 0.180 | -0.150 | 8.5 |
The result is kept between 3 and 60 %.
When an impedance is ignored
An impedance below 150 ohm or above 1200 ohm is not a body measurement. It is exported as 0, and the weigh-in gets the scale's own body fat where the scale sends one, or the estimate below. Such a value would not fail visibly. It would pin body fat to the 3 or 60 % limit. The log names the value:
Impedance 4317 Ohm is not a usable measurement (150-1200 Ohm), so it is not used.If your scale measures impedance and your body fat still looks like an estimate, look for that line and report the number with what your vendor app shows.
Body fat fallback (Deurenberg)
Without a usable impedance (a weight-only scale, socks, or a value outside 150 to 1200 ohm) and without a body fat from the scale, body fat is estimated from BMI, with sex 1 for male and 0 for female:
Adults: Body Fat % = 1.20 * BMI + 0.23 * age - 10.8 * sex - 5.4
Age 15 and under: Body Fat % = 1.51 * BMI - 0.70 * age - 3.6 * sex + 1.4For athletes the result is multiplied by 0.85. It is kept between 3 and 60 %. Water, bone mass, muscle mass, visceral fat and physique rating then follow from this estimate with the formulas below, so a weigh-in without impedance still exports every metric.
Without the estimate
With estimate_body_composition: false for a user, a weigh-in without measured body fat gets no estimate: body fat, water, bone mass, muscle mass, visceral fat and physique rating are left empty, while weight, BMI, BMR and metabolic age are exported. See Configuration.
Other metrics
LBM is lean body mass, weight * (1 - Body Fat % / 100).
| Metric | Formula |
|---|---|
| BMI | weight / height_m^2 |
| Water | LBM * 0.73 / weight * 100 (athlete: 0.74) |
| Bone mass | LBM * 0.042 |
| Muscle mass | LBM - Bone Mass |
| Visceral fat | Body Fat % * 0.55 - 4 + age * 0.08, kept between 1 and 59; 1 at 10 % body fat or less |
| BMR | Mifflin-St Jeor: 10*W + 6.25*H - 5*A + s, s = +5 male, -161 female |
| Metabolic age | age + (BMR at age 25 - BMR) / 15, at least 12 |
| Physique rating | 1 to 9 from body fat (below 18, 18 to 25, above 25 %) and a skeletal muscle estimate of LBM * 0.54 (athlete: 0.60) |
A scale's own BMR and body age replace the last two when it sends them with its body fat and they are plausible (500 to 5000 kcal, 12 to 120 years).
Athlete mode
is_athlete: true in a user's profile adjusts the formulas for people who train regularly.
The setup wizard asks for it. What changes:
- Lean body mass: the athlete BIA coefficients in the table above.
- Water: 74 % of lean body mass instead of 73 %.
- Physique rating: its skeletal muscle input is 60 % of lean body mass instead of 54 %.
- BMR: 5 % higher.
- Metabolic age: actual age minus 5 when it would otherwise come out above actual age.
- Deurenberg estimate: multiplied by 0.85.
Values a scale computed itself are used as they are.
Scale-specific algorithms
A scale's own values are used only with a body fat value and only when every value it sends is in range. Otherwise the whole set is discarded and computed as above.
Xiaomi Mi Scale 2 and S400
Both broadcast weight and impedance (the S400 its 50 kHz value). Body fat, water, bone mass and visceral fat come from the Xiaomi formulas ported from openScale. muscle mass, BMR and the rest come from the formulas above. A frame without impedance gets the Deurenberg estimate. The S400 app uses a proprietary dual-frequency model, so expect small, consistent offsets from it.
Yunmai
On firmware that sends it, the scale's own body fat is used, and water, muscle, bone mass and visceral fat are derived from it with the Yunmai formulas ported from openScale. Otherwise body fat comes from the Yunmai formula, which works mostly from BMI and age. The generic BIA formula is not used. The scale computes for the profile its vendor app stored.
Scales that compute their own composition
These scales compute body composition themselves for a profile ble-scale-sync sends them:
- Arboleaf and other 19-byte QN scales
- Arboleaf CS10K (Experimental, with
ble.qn_user_key) - Arboleaf CS10E on the 20-byte QN dialect (Experimental, with
ble.qn_algorithm) - Renpho R-MSC04
- Huawei CH100 / AH100 (body fat only)
Their values are used only when that profile matches the user the weigh-in goes to. See QN scales, Renpho scales and Huawei CH100 / AH100.
References
- BIA: Lukaski H.C. et al. (1986), "Assessment of fat-free mass using bioelectrical impedance measurements of the human body", American Journal of Clinical Nutrition
- Mifflin-St Jeor: Mifflin M.D., St Jeor S.T. et al. (1990), "A new predictive equation for resting energy expenditure in healthy individuals", American Journal of Clinical Nutrition
- Deurenberg: Deurenberg P., Weststrate J.A., Seidell J.C. (1991), "Body mass index as a measure of body fatness: age- and sex-specific prediction formulas", British Journal of Nutrition