September 3, 2026 · 4 min read

Body fat

Which scales and platforms supply them, how fat mass is derived, why the values are point-in-time, and what to build.

What the biomarkers measure

BiomarkerWhat it isUnit
body_fatThe latest body fat percentage reading on the dayPercent
fat_massLatest weight × latest body fat percentage, on the same dayKilograms
lean_massThe latest lean body mass reading on the dayKilograms
Fieldbody_fat, fat_mass, lean_mass
UnitPercent, kg, kg
ReportedOn days with a reading. The latest reading of the day is kept.
WindowMidnight to midnight, profile local time
Wearable requiredYes, a body-composition scale or similar
APIGET /api/v1/profile/biomarker/{externalId}?categories=body plus one types parameter per field and a date range
WebhookBiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id.

Like weight and height, these are point-in-time readings with periodicity none. Take the most recent entry as the current value.

Data sources

PlatformBody fatLean mass
iOS, HealthKitbodyFatPercentage, from smart-scale apps such as Withings, Renpho, Garmin Index, and EufyleanBodyMass, from the same apps
Android, Health ConnectBodyFatRecord, from scale apps and Samsung HealthLeanBodyMassRecord
Direct integrationsProvider-dependentProvider-dependent
Phone onlyManual entries onlyManual entries only

How Sahha calculates body fat

  1. Pick one source for the day within the body category. A source that reports body fat ranks first, so the scale wins over any manual weight entry.
  2. Body fat and lean mass are the latest reading of each on the day from that source.
  3. Fat mass is derived: the day’s latest weight from the winning source multiplied by the day’s latest body fat percentage, divided by 100. It is written only when both exist on the same day.

Absence means no reading that day, or for fat mass, no day with both inputs.

Interpreting the value

Consumer body fat estimates are imprecise and consistent. Bioimpedance scales can be several percentage points off a reference method [1], but they drift little from day to day for the same person under the same conditions. The trend over weeks is meaningful; the absolute value is a rough guide.

Hydration moves the reading. Morning, post-workout, and evening readings differ. Coach users to weigh at the same time of day.

Lean mass is the number strength-focused users want. Fat mass falling while lean mass holds is the pattern a body-recomposition feature should look for.

None of the three is a score factor or has a trend or comparison insight.

Use cases

A composition trend. Plot fat mass and lean mass over 90 days as two lines, with weight as their sum. The identity holds whenever all three come from the same day.

GET /api/v1/profile/biomarker/{externalId}?categories=body&types=body_fat&types=fat_mass&types=lean_mass&startDateTime=2026-06-05&endDateTime=2026-09-03

A same-scale rule. Compare readings only within one source. A user switching scales will see a step change in body fat that has nothing to do with their body.

Limitations

  • Scale-dependent. No scale, no data. Coverage is a small fraction of profiles.
  • Fat mass needs same-day inputs. A weigh-in without a body fat reading produces no fat mass.
  • Point in time. Do not aggregate across days.
  • Absence is not zero.

References

  1. Achamrah N, Colange G, Delay J, et al. Comparison of body composition assessment by DXA and BIA according to the body mass index: a retrospective study on 3655 measures. PLoS ONE. 2018;13(7):e0200465. https://doi.org/10.1371/journal.pone.0200465

Related