Calculating Pitch and Roll gives wrong values

I have the following widget: https://github.com/TimZander/slope-widget

The goal is to display the slope angle based on the watch face.

I am calculating pitch and roll here: https://github.com/TimZander/slope-widget/blob/main/source/SlopeWidgetView.mc#L71

var accel = sensorInfo.accel;
xAccel = accel[0];
yAccel = accel[1];
zAccel = accel[2];

pitch = 180 * Math.atan2(yAccel, Math.sqrt(Math.pow(xAccel, 2) + Math.pow(zAccel, 2)));
roll = 180 * Math.atan2(-xAccel, zAccel);

But when I run this with the watch face flat I am getting pitch: -10deg, roll: -24deg which seems really off.

I'm not sure what I'm doing wrong.

Thanks for any advice