I have a Garmin 800 which includes heart rate in addition to speed and elevation. Heart rate tells it what my actual level of effort is, so that should take wind and all those other variables into account. It also knows my age, gender and weight, so with all that data it should be able to estimate calories burned pretty closely, or at least as closely as is possible outside a laboratory.
Well, according to my Garmin I should lose almost 20 pounds every year during riding season. Sadly, I must report that hasn't happened yet. Not even close. Yes, my calorie intake and levels of other activities during riding season remain the same, so if I'm burning, say, 3500 calories per week riding my bike like Garmin says, then I should be losing a pound a week, give or take*. In practice, though, I find that I lose maybe 5 pounds over the entire season, which is 75% less than Garmin predicted.
- I say "give or take" because weight loss and calories aren't a simple equation. There are dozens of variables involved and no two people are the same, but the margin of error should be somewhere in the 10-20% range, or at least less than 50%, and definitely not the 75% error I see consistently.
I therefore conclude that Garmin and the other half-dozen fitness apps/gizmos I've tried all grossly exaggerate calorie usage. Why? Because looking at your expensive gizmo and seeing a huge number of calories burned makes you happy and sells more product.
So, based on my admittedly casual and anecdotal observations, I would recommend subtracting 50-75% from whatever Garmin says for a reasonably accurate estimate of calorie burn.