September 3, 2026 · 5 min read

Floors climbed

Which devices can produce it, why it follows the day's winning step source, how it scores, and what to build with it.

What floors_climbed measures

floors_climbed is the number of flights of stairs, or equivalent elevation gained on foot, recorded in the local day. It is an integer. One floor is roughly 3 metres or 10 feet of ascent while walking.

Fieldfloors_climbed
UnitCount
ReportedDaily
WindowMidnight to midnight, profile local time
Wearable requiredNo on iOS. Barometer and a Health Connect writer on Android.
APIGET /api/v1/profile/biomarker/{externalId}?categories=activity&types=floors_climbed plus a date range
WebhookBiomarkerCreatedIntegrationEvent. Entries update in place, upsert on id.

Data sources

Floors are detected by combining a barometric pressure sensor with motion. Only devices that have the sensor can produce them.

PlatformRecordNotes
iOS, HealthKitflightsClimbedEvery iPhone since the iPhone 6 has a barometer, so a phone-only iOS user gets floors when the phone is carried. Apple Watch also records them.
Android, Health ConnectFloorsClimbedRecordNeeds a phone or watch with a barometer and an app such as Google Fit, Samsung Health, or a wearable’s companion app writing to Health Connect.
Android, device sensorNoneThe phone step counter Sahha reads as a steps fallback does not produce floors.
Direct integrationsProvider-dependentOnly where the provider supplies floors.
Wearable requiredNo on iOSClose to wearable-dependent on Android in practice.

How Sahha calculates floors_climbed

  1. Sum every floors sample from a source whose end time falls inside the local day.
  2. Publish the total from the source that won best-source selection for activity. That selection is decided by steps, not by floors.

The second step has a consequence worth stating plainly: if the source with the most steps does not report floors, there is no floors biomarker that day, even if another connected source did report them. There is also no biomarker on days where the winning source reported zero floors samples. Absence means no data, not zero.

Interpreting the value

What counts as a lot. The Activity Score goal is 10 floors. A typical office worker who takes the stairs a few times reaches 5 to 15. Someone in a flat town with a lift reaches 0 to 2 most days, and that is not a health signal.

It is the least reliable activity biomarker. Detection depends on the barometer, on weather-driven pressure changes, and on whether the user is walking at the time. Treat single-day values as approximate and week-over-week totals as the useful unit.

Zero and missing look alike to users. A user with no barometer and a user who stayed on one floor both see nothing. Only the second one is a real zero, and Sahha cannot tell them apart.

Score factor. Floors climbed is a factor, under the name floors_climbed, in the Activity and Wellbeing scores, with unit floor and goal 10. Credit is linear with a floor of 0.2:

FloorsFactor score
00.20
20.36
50.60
80.84
10 and above1.00

Because a missing biomarker means the factor is absent rather than zero, a user whose device cannot count floors is not penalised. The score is computed from the factors that exist. For the current day the factor is projected forward like steps.

Trend. A floors_climbed trend is available on the factor score.

Comparison. None.

Use cases

A stair-climbing challenge, gated on capability. Before enrolling a user, check that they have at least one floors biomarker in the last 14 days. Users without one cannot take part and should not see the challenge.

GET /api/v1/profile/biomarker/{externalId}?categories=activity&types=floors_climbed&startDateTime=2026-08-18&endDateTime=2026-09-01

An intensity hint next to steps. Same steps, more floors, harder day. Useful as one line in a daily summary, not as a feature on its own.

Limitations

  • Not every device can count floors. No barometer, no floors. Check for the biomarker’s existence before building on it.
  • Floors follow the steps winner. A watch that reports floors will lose them on a day the phone out-steps it. Watch source on the steps biomarker if you need to explain a gap.
  • Absence is not zero. Render missing days as no data.
  • Pressure weather affects counts. Storms and rapid pressure changes can add or remove a floor or two. Do not alert on small daily changes.

Related