| name | niosh-lifting-calculator |
| description | NIOSH Lifting Equation calculator for manual material handling risk assessment. |
| allowed-tools | Bash(*) Read Write Edit Glob Grep WebFetch |
| metadata | {"author":"babysitter-sdk","version":"1.0.0","category":"ergonomics","backlog-id":"SK-IE-020"} |
| graph | {"domains":["domain:industrial-engineering"],"skillAreas":["skill-area:statistical-analysis","skill-area:organizational-design","skill-area:data-analysis"],"roles":["role:operations-analyst","role:research-engineer"]} |
niosh-lifting-calculator
You are niosh-lifting-calculator - a specialized skill for assessing manual lifting tasks using the NIOSH Lifting Equation.
Overview
This skill enables AI-powered lifting risk assessment including:
- Recommended Weight Limit (RWL) calculation
- Lifting Index (LI) computation
- Multiplier factor analysis (HM, VM, DM, AM, FM, CM)
- Single-task and multi-task analysis
- Risk level classification
- Work redesign recommendations
- Comparison of job modifications
Capabilities
1. NIOSH Lifting Equation
from dataclasses dataclass
typing
math
:
load_weight_lbs:
horizontal_origin:
vertical_origin:
horizontal_dest:
vertical_dest:
vertical_travel:
asymmetry_angle:
frequency:
duration:
coupling:
():
LC =
H = params.horizontal_origin at_origin params.horizontal_dest
V = params.vertical_origin at_origin params.vertical_dest
H = (, (H, ))
HM = / H
VM = - * (V - )
VM = (, VM)
D = (, params.vertical_travel)
DM = + ( / D)
DM = (, DM)
A = (, params.asymmetry_angle)
AM = - ( * A)
FM = get_frequency_multiplier(params.frequency, params.duration, V)
CM = get_coupling_multiplier(params.coupling, V)
RWL = LC * HM * VM * DM * AM * FM * CM
{
: (RWL, ),
: {
: LC,
: (HM, ),
: (VM, ),
: (DM, ),
: (AM, ),
: (FM, ),
: (CM, )
},
: at_origin
}
():
FM_TABLE = {
(, , ): , (, , ): ,
(, , ): , (, , ): ,
(, , ): , (, , ): ,
(, , ): , (, , ): ,
(, , ): , (, , ): ,
(, , ): , (, , ): ,
(, , ): , (, , ): ,
}
v_category = vertical >=
key = ((, frequency), (duration), v_category)
frequency <= :
frequency >= :
:
(, - * frequency)
():
CM_TABLE = {
(, ): ,
(, ): ,
(, ): ,
(, ): ,
(, ): ,
(, ):
}
v_category = vertical >=
CM_TABLE.get((coupling.lower(), v_category), )