from Reddit
Idea: For advanced mode you would ask for average wattage instead of average speed and for how long. That would give you Joules for a day. Then you can use hill climb formulas to calculate how far you go per day by energy expended. You could even ask for a "bumpiness" factor and make an adjustment to wattage applied to forward movement.
The other way to get Joules/day is to have the user upload a past ride that represents the difficulty that they are shooting for. You can use your formulas to calculate joules and then apply the same formulas to the upcoming ride. Then, even if your formulas aren't producing accurate Joules, you should still be in the ballpark for that particular user.
from Reddit