Back to Dorsi

How Dorsi estimates Biological Age

A directional wellness estimate from everyday signals. It is not a clinical biological-age test, a diagnosis, or a prediction of how long you will live.

Method documented: Body Age v0.7 · Reviewed September 11, 2026

What data goes into the estimate?

Dorsi uses your age and available profile information, plus supported Apple Health and recorded workout data. Eight components cover four signal families: sleep, daily movement, cardio, and training. These include sleep duration and timing, steps, resting heart rate, VO₂ max, moderate and vigorous activity, and strength-training minutes. Only eligible components enter the total.

Health permissions, device wear, supported measurements, and workout recording all affect coverage. Missing data is not evidence of inactivity.

How much data is needed?

An estimate is shown only when eligible components cover at least three of the four signal families. There is no single percentage that makes an estimate reliable. Before this threshold is met, the result stays in a learning state and the overall age is withheld.

Sleep duration

28 days

At least 8 valid days; when weekly coverage is available, at least 2 must fall in the most recent week.

Sleep timing regularity

7 days

At least 4 valid nights, using the standard deviation of main-sleep onset times.

Resting heart rate and daily steps

30 days

At least 20 days of coverage for each signal to contribute.

Cardio fitness (VO₂ max)

Up to 90 days

At least 1 eligible record. More records and source quality affect completeness. The age/sex reference covers ages 20–79.

Moderate and vigorous activity

30 days, expressed as weekly minutes

Recorded activity needs at least 1 covered day and 70% heart-rate coverage. A zero-activity value needs a complete 30-day window.

Strength training

30 days, expressed as weekly minutes

Recorded training needs at least 1 covered day. A zero-training value needs a complete 30-day window.

Data completeness summarizes coverage and source quality across components. It is not the probability that your estimated age is correct, and a high percentage does not establish clinical validity.

How is the number calculated?

The model compares eligible inputs with reference curves and converts them into positive or negative age contributions. It adds those contributions to chronological age, rounds to one decimal place, and applies a display floor of 18 years.

Some contributions use a logarithmic risk-to-age conversion: 10 × ln(relative risk). Other components use their own reference curves, including age- and sex-based cardio-fitness norms. The conversion, combination rules, and display limits are Dorsi modeling choices. The cited studies do not validate this combined score as a measured biological age.

Time windows and updates

Snapshots follow a weekly Monday cycle in your local time zone. Most baseline signals use the preceding 30 days; sleep duration uses 28 days, and VO₂ max may use records from the preceding 90 days. Check the result’s update date and available data in the app.

Where enough comparable inputs exist, a 30-day projection compares recent 7-day activity with baseline conditions. Sleep contributions remain fixed in that projection. It is a scenario estimate, not a forecast of actual aging or a promise of improvement.

Missing, unusual, or changing data

Components without usable values or sufficient coverage are excluded. A recorded zero and a missing record are handled differently, especially for activity and strength training. Reference curves use bounds; unusual values should still be checked against their source records.

New permissions, a different device, delayed sync, or corrected records can change the available components and therefore the estimate. Compare trends with similar data coverage. If a result looks unexpected, review the biomarker details, coverage, and update date before drawing conclusions.

What can this tell you about training?

Use the estimate as longer-term context alongside your actual training record. It does not measure today’s readiness, prescribe your next workout, establish a medical condition, or prove that training reversed aging. Discuss changes in time, performance, and how you feel with Coach; do not use an age score as a reason to push through pain.

Method version and research sources

This page documents the v0.7 calculation specification, identified as body-age-v0.7-sleep-onset-sd-r1-monday. App and service updates can change the method; compare results generated with the same method and coverage. This page does not independently establish which service version generated an individual historical result.

The following research provides context or reference inputs. Population-level associations cannot establish what caused an individual’s result, and none is a validation study of Dorsi’s complete algorithm.