I did an experiment by exercising on a treadmill and comparing the results calculated simultaneously by the following items:
1) heart rate, distance, and calories counted by the Apple Watch and displayed by the Nike Run Club watch app (which is integrated with Apple Health)
2) heart rate from a Wahoo Tickr heart rate sensor (worn around your chest, typically used by cyclists) the distance from a Polar Run pedometer (worn on your shoe), and calories calculated by the Zwift PC app, as displayed by the Zwift PC app
3) the distance and calories calculated by my treadmill
Note that the Apple Watch and Zwift (1 and 2 above) had my age, weight, and height programmed into them, but I believe my treadmill (3 above) did not
My results, as shown in the video below, were that 1) and 2) calculated the heart rate and distance within about 95% accuracy of each other. The distance calculated by 1) and 2) was maybe 15% lower than 3), but I believe that may be partially from treadmill tread slippage or something like that, so I consider the distance calculated by 1) and 2) to be fairly accurate. At some point in the future, I should go out into the real world with these sensors, run a known distance, and double-check the accuracy of these distance calculations.
The calories calculated by 1) 2) and 3) were widely different. 1) calculated twice as many calories as 2), and 3) was somewhere in between. I believe that the actual calories burned during the workout is probably most accurately determined by 2), which is unfortunately the lowest number, primarily because the pedometer in my shoe in setup 2) can more accurately measure my running stride (or more accurately, my speed-running stride) on the treadmill. Also, the Zwift app is for serious cyclists and runners who care deeply about fitness metrics, whereas the Apple Watch is more for casual fitness, and I’ve seen through experience over the years that casual fitness devices almost always exaggerate calories burned, sometimes to a comedically ridiculous extent
Note: The heart rate sensor of setup 2) failed to connect for about 3 minutes, and this may have caused the calorie count of setup 2) to be slightly lower (but I still think the Apple Watch is massively over-counting the calories, though)