I have a sloped mesh face that I’m feeding into the grasshopper script attached.
its looking at the face normal, grabbing the angle and converting that into a slope ratio of 1:30.

the next photo is a calculation of the same sloped mesh using Run/Rise which gives a ratio of 1:40

What is causing this discrepancy? they should result in the same result right?

The white lines are contours and you can see the slope is not parallel to the edges.

In order to get the same result as the calculation with the normal angle, you need to select two points which are perpendicular to the contours. In other words parallel or in line with the slope.