September 3, 2026 · 4 min read

Macronutrients

Protein, carbohydrate, sugar, fiber, fat and its four sub-types, and cholesterol: where logged macros come from, how daily totals are built, which fields are platform-limited, and what to build.

What the macronutrient biomarkers measure

Daily logged totals of the energy-bearing nutrients and their components.

BiomarkerWhat it isUnit
protein_intakeProtein consumedGrams
carbohydrate_intakeTotal carbohydrate, including sugar and fiberGrams
sugar_intakeSugars, a component of carbohydrateGrams
fiber_intakeDietary fiber, a component of carbohydrateGrams
fat_intakeTotal fatGrams
fat_saturated_intakeSaturated fat, a component of fatGrams
fat_monounsaturated_intakeMonounsaturated fat, a component of fatGrams
fat_polyunsaturated_intakePolyunsaturated fat, a component of fatGrams
fat_trans_intakeTrans fat, a component of fat. Android only.Grams
cholesterol_intakeDietary cholesterolMilligrams

All are reported daily, over a midnight-to-midnight window in the profile’s local time zone, on days with at least one log. None requires a wearable.

Access
APIGET /api/v1/profile/biomarker/{externalId}?categories=nutrition plus one types parameter per field and a date range
WebhookBiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id.

Data sources

PlatformRecordNotes
iOS, HealthKitdietaryProtein, dietaryCarbohydrates, dietarySugar, dietaryFiber, dietaryFatTotal, dietaryFatSaturated, dietaryFatMonounsaturated, dietaryFatPolyunsaturated, dietaryCholesterolWritten by food loggers such as MyFitnessPal, Cronometer, Lose It, Yazio, and MacroFactor. No trans fat type.
Android, Health ConnectNutritionRecord fields, including trans fatSame apps, plus Samsung Health
Direct integrationsNone
Phone onlyManual entry, or entries your own app writes

Which fields a food logger writes varies. Most write protein, carbohydrate, and fat. Fewer write the fat sub-types and cholesterol.

How Sahha calculates macronutrients

  1. Pick one source for the day, per nutrient. For each field, the source with the highest daily total wins. Ten fields can in principle have ten different winners.
  2. Sum the winning source’s entries with an end time inside the local day.

Absence for a field means no source logged it that day, which for the sub-types is common even among users who log.

Interpreting the values

Protein is the macro users act on. Grams per kilogram of body weight, using the latest weight, is the number strength and weight-management features present.

The components are subsets. Sugar and fiber sit inside carbohydrate; the four fat sub-types sit inside total fat. Do not stack them next to the totals as if they were additional.

Sub-type coverage is thin. Saturated fat is logged by most apps; the other three fats and cholesterol far less. Design the sub-type view to cope with blanks.

None of the ten is a score factor or has a trend or comparison insight. The nutrition recommendations by archetype guide shows how to drive nutrition features from archetypes for users who do not log.

Use cases

A macro split. Protein, carbohydrate, and fat as a three-segment bar, with energy intake as the label. Show the logged-days count for the period.

GET /api/v1/profile/biomarker/{externalId}?categories=nutrition&types=protein_intake&types=carbohydrate_intake&types=fat_intake&startDateTime=2026-08-27&endDateTime=2026-09-03

A protein target. Latest weight × a target in grams per kilogram, compared with the logged protein total, for users who log on most days.

A fiber nudge. Fiber is the macro most people under-consume and the one with the clearest guideline [1]. Show it against the guideline only on days with a logged energy total above a floor, to avoid flagging half-logged days.

Limitations

  • Logged only.
  • Per-nutrient winners can make a day’s macros and energy come from different apps.
  • Trans fat is Android only.
  • Absence is not zero for any field.

References

  1. Quagliani D, Felt-Gunderson P. Closing America’s fiber intake gap: communication strategies from a food and fiber summit. American Journal of Lifestyle Medicine. 2017;11(1):80-85. https://doi.org/10.1177/1559827615588079

Related