A computer-readable medium comprising computer-executable instructions that when executed by a processor, perform at least: receiving motion data for a time period comprising one or more data points along at least three axes of an accelerometer as a result of motion of a user; receiving heart rate data obtained from the user during the user's performance of the motion detected by the accelerometer; without classifying the motion data into an activity type, identifying from the motion data a first accelerometer axis having a greatest amount of acceleration for the time period and a second accelerometer axis having a second greatest amount of acceleration for the time period, wherein the greatest amount of acceleration and the second greatest amount of acceleration are obtained from the motion data; based upon the identification of the first accelerometer axis, calculating a first attribute for the motion data along the first accelerometer axis; based upon the identification of the second accelerometer axis, calculating a second attribute for the motion data along the second accelerometer axis, wherein the second attribute is different than the first attribute; calculating a unidirectional attribute from the heart rate data; without classifying the motion data into an activity type, determining, for each model of a plurality of models, and based on comparing weights of each model with the first attribute, the second attribute, and the unidirectional attribute, a probability that the model will output a best available estimate of an output value; selecting a first model from the plurality of models based on a determination that the first model is associated with a highest probability of each of the probabilities; calculating, using the first model, an output value for the user; and without classifying the motion data into an activity type, calculating, using the output value, an energy expenditure associated with the motion of the user. receiving motion data for a time period comprising one or more data points along at least three axes of an accelerometer as a result of motion of a user; receiving heart rate data obtained from the user during the user's performance of the motion detected by the accelerometer; without classifying the motion data into an activity type, identifying from the motion data a first accelerometer axis having a greatest amount of acceleration for the time period and a second accelerometer axis having a second greatest amount of acceleration for the time period, wherein the greatest amount of acceleration and the second greatest amount of acceleration are obtained from the motion data; based upon the identification of the first accelerometer axis, calculating a first attribute for the motion data along the first accelerometer axis; based upon the identification of the second accelerometer axis, calculating a second attribute for the motion data along the second accelerometer axis, wherein the second attribute is different than the first attribute; calculating a unidirectional attribute from the heart rate data; without classifying the motion data into an activity type, determining, for each model of a plurality of models, and based on comparing weights of each model with the first attribute, the second attribute, and the unidirectional attribute, a probability that the model will output a best available estimate of an output value; selecting a first model from the plurality of models based on a determination that the first model is associated with a highest probability of each of the probabilities; calculating, using the first model, an output value for the user; and without classifying the motion data into an activity type, calculating, using the output value, an energy expenditure associated with the motion of the user.