SENS Activity v5.6 Dual Sensor - Algorithm
The SENS motion system contains a range of algorithms that can be used to calculate activity based on the accelerometer signal. This article describes the SENS Activity v5.6 Dual Sensor algorithm, which can analyse data from two SENS motion activity sensors mounted on the thigh and chest, respectively. By using two sensors, it is possible to distinguish whether the participant is sitting or lying down.
The algorithm is also available in a version that only uses one sensor on the thigh and in a version that calculates sleep parameters.
Note: The SENS Activity v5.6 Dual Sensor algorithm is under development, which means changes may occur.
This article contains the following sections:
Algorithm#
Overall, the algorithm works by calculating a range of parameters from each accelerometer signal for approximately every 5-second period. These are used to detect which physical activity the participant performed in that period, along with additional values (counts).
The algorithm output can be divided into two groups:
- Activity category - describes which type of physical activity the participant performed.
- Counts - additional details about the participant’s physical activity, for example steps.
Parameters#
Inclination angle#
The inclination angle indicates the angle of the accelerometer x-axis relative to horizontal. If the accelerometer is horizontal, the value is 0, and if it is vertical, the angle is 90 or -90 degrees depending on whether it points up or down.
The inclination angle is calculated on the part of the signal that moves slower than 0.5 Hz.

Thresholds for thigh accelerometer
A participant is registered as sitting/lying when the inclination angle of the thigh accelerometer goes below 30 degrees. If the angle goes above 40 degrees, the person is registered as standing/upright. The interval between 30 degrees and 40 degrees functions as hysteresis.
Threshold for chest accelerometer
A participant is registered as sitting if the inclination angle of the chest accelerometer goes above 25 degrees and the thigh accelerometer indicates lying/sitting. If the thigh accelerometer indicates standing, the chest accelerometer has no effect.
Movement intensity#
The intensity is calculated by summing all accelerometer measurements in the period from the part of the accelerometer signal that moves faster than 0.5 Hz.
This parameter provides a good estimate of movement intensity. The intensity value in a 5-second interval is typically 0-100, where 100 denotes very high intensity.
| Intensity | Level |
|---|---|
| 0-2 | No movement |
| 2-10 | Sporadic steps |
| 10-50 | Walking (continuous walking) |
| 50-75 | Moderate intensity (e.g., slow running) |
| 75-100 | High intensity (e.g., fast running) |
Activity categories#
| Activity category | Description |
|---|---|
nodata | No data. May occur when retrieving data for a period where the accelerometer was not turned on, or when the period is outside the measurement period entered for the participant. |
non_wear | Accelerometer not worn. Indicates that the accelerometer has been completely still for more than 2 hours, which is assumed to mean it has not been worn. |
lying_rest![]() | Lying and no movement - Inclination angle for thigh: below 30 degrees - Inclination angle for chest: below 25 degrees - No movement of the thigh (intensity below 2) |
lying_movement![]() | Lying and movement - Inclination angle for thigh: below 30 degrees - Inclination angle for chest: below 25 degrees - Movement of the thigh (intensity above 2) |
sitting![]() | Sitting and no movement - Inclination angle for thigh: below 30 degrees - Inclination angle for chest: above 25 degrees - No movement of the thigh (intensity below 2) |
sitting_movement![]() | Sitting and movement - Inclination angle for thigh: below 30 degrees - Inclination angle for chest: above 25 degrees - Movement of the thigh (intensity above 2) |
upright_stand | Standing and no movement - Inclination angle for thigh: above 40 degrees - Inclination angle for chest: no effect - No movement of the thigh (intensity below 2) - No steps are counted |
upright_sporadic_walk![]() | Standing and sporadic walking - Inclination angle for thigh: above 40 degrees - Inclination angle for chest: no effect - Movement of the thigh (intensity 2-10) - Steps are counted |
upright_walk![]() | Standing and continuous walking with low intensity - Inclination angle for thigh: above 40 degrees - Inclination angle for chest: no effect - Movement of the thigh (intensity 10-50) - Steps are counted |
upright_moderate![]() | Standing and continuous walking with moderate intensity - Inclination angle for thigh: above 40 degrees - Inclination angle for chest: no effect - Movement of the thigh (intensity 50-75) - Steps are counted |
upright_run![]() | Standing and high intensity movement - Inclination angle for thigh: above 40 degrees - Inclination angle for chest: no effect - Movement of the thigh (intensity 75+) - Steps are counted |
cycling![]() | Cycling or similar movement During the period, the participant has had a smooth periodic movement of the thigh indicating cycling or other periodic movements that are not steps, for example a rowing machine or other exercise. The chest accelerometer has no effect. - Steps are not counted |
Counts#
Steps#
The number of steps is counted during sporadic walking, walking, or high intensity activities. The “Steps” category in an exported CSV file is further divided into 3 categories depending on step frequency:
| Category | Description |
|---|---|
| Steps 1 | Steps taken during continuous walking activity and training. Based on frequency-domain analysis, where the characteristic frequency of walking movement is recognised in a 5-second interval. |
| Steps 2 | Steps taken during sporadic walking, where no continuous frequency can be recognised in a 5-second interval. Summed as 2 steps per 5-second sporadic walking interval. |
| Steps 3 | Steps taken during low-intensity walking, where a continuous frequency can be recognised in a 5-second interval. Based on frequency-domain analysis. |
Comparison with wrist activity trackers (smartwatches) and smartphones: Steps taken with very low intensity are included in the step count, and because wrist-worn activity trackers are usually less sensitive, the number of steps taken during low-intensity activities such as cooking or cleaning will be higher with SENS compared to wrist-worn trackers, which tend to underestimate steps during such activities. To compensate for this, using only “Steps 1” will provide a number comparable to wrist-worn activity trackers.
Sitting to standing#
The number of times the activity category switches between sitting and standing is recorded as the number of times the person has risen from sitting to standing.
Time categories#
UTC#
Stands for “Coordinated Universal Time”. This is the primary global standard for specifying a time that does not depend on time zone. It is not tied to a specific time zone and therefore serves as a reference point for time registration. The format is YYYY-MM-DD T hh:mm:ms.
Local#
Shows the local time zone. The format is YYYY-MM-DD T hh:mm:ms.
Unixts#
Stands for “Unix timestamp”. It is a system that tracks time as a running total of seconds. It represents the number of milliseconds since UTC January 1, 1970 00:00. It is used for internal time registration in the SENS motion system.









