> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uplift.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Shoulder 90/90

> Biomechanical analysis of shoulder 90/90 range of motion assessment for external and internal rotation with compensations.

## Overview

The shoulder 9090 assessment evaluates internal and external rotation range of motion in the shoulder joint with the arm positioned at 90 degrees of abduction and 90 degrees of elbow flexion. This assessment provides valuable information about shoulder mobility and function.

## Instructions

Stand upright and raise the testing arm to 90 degrees of abduction (arm out to the side at shoulder height) with the elbow bent to 90 degrees and forearm pointing forward. From this position, rotate the forearm upward (external rotation) and then downward (internal rotation) as far as possible, keeping the upper arm level. Hold briefly at each end range, then return to neutral. Repeat on the opposite side.

## Example Videos

### Left

<Frame>
  <video controls src="https://uplift-docs-assets.s3.amazonaws.com/range_of_motion/range_of_motion-shoulder_90_90-left_combined.mp4" />
</Frame>

### Right

<Frame>
  <video controls src="https://uplift-docs-assets.s3.amazonaws.com/range_of_motion/range_of_motion-shoulder_90_90-right_combined.mp4" />
</Frame>

## Dimensions

Required inputs for processing:

* **Handedness:** the side \['left','right'] performing the movement

## Generic Outputs

Every capture includes session metadata, standard joint angle/velocity time series, and 3D keypoint positions common to all movements. See [Generic Outputs](/biomechanics/activities/generic_outputs) for the full list.

## Events

| Event | Description                        | Column Name |
| ----- | ---------------------------------- | ----------- |
| Start | Frame of movement start            |             |
| MER   | Frame of maximum external rotation |             |
| MIR   | Frame of maximum internal rotation |             |

## Discrete Metrics

| Metric                     | Units   | Description                                                          | Column Name                |
| -------------------------- | ------- | -------------------------------------------------------------------- | -------------------------- |
| MERAngle                   | degrees | Maximum External Rotation angle                                      | \`\`                       |
| MIRAngle                   | degrees | Maximum Internal Rotation angle                                      | \`\`                       |
| HorizontalAbductionCompMER | -       | Horizontal abduction compensation at MER (1 if > 30°, -1 if \< -30°) | \`\`                       |
| HorizontalAbductionCompMIR | -       | Horizontal abduction compensation at MIR (1 if > 30°, -1 if \< -30°) | \`\`                       |
| SideBendCompMER            | -       | Side bend compensation at MER (1 if > 20°, -1 if \< -20°)            | \`\`                       |
| SideBendCompMIR            | -       | Side bend compensation at MIR (1 if > 20°, -1 if \< -20°)            | \`\`                       |
| ElbowHikeCompMER           | -       | Elbow hike compensation at MER (1 if > 0.05m, -1 if \< -0.05m)       | \`\`                       |
| ElbowHikeCompMIR           | -       | Elbow hike compensation at MIR (1 if > 0.05m, -1 if \< -0.05m)       | \`\`                       |
| MERFunctional              | -       | Whether MER is functional (> 90°)                                    | `shoulder_9090_functional` |

## Notes

* MER is detected using peak detection with 30° prominence
* MIR is detected using peak detection with 30° prominence on inverted signal
* Start event is detected by finding a window of 30 frames where the shoulder rotation difference is less than 0.5 degrees
* Functional MER is defined as > 90°
