RuckTrack's calorie number is load-aware because Garmin's built-in profiles aren't. This page covers exactly how the math works, what the inputs are, and where the published research comes from.
Garmin's headline activity calorie is based on the Firstbeat heart-rate model: your HR response, body weight, age, and a VO2max estimate. It's a good general fitness number, but it doesn't take pack weight as an input. Published research on load carriage shows HR-only estimation under-credits a loaded carry by roughly 10 to 20 percent because heart-rate-derived metabolic models don't directly account for the mechanical work of moving extra mass.
For rucking specifically, the U.S. Army Research Institute of Environmental Medicine spent decades validating a different approach: estimate metabolic cost from mechanical inputs (body weight, load, speed, grade, terrain) and read calories straight off the metabolic rate. That's the Pandolf equation.
The original 1977 form (Pandolf, Givoni & Goldman), as RuckTrack runs it:
Where:
M — metabolic rate in wattsW — body weight in kg (from your Garmin user profile, or 70 kg if unset; marked (est.) in Calorie Details so you know)L — pack weight in kgV — walking speed in m/s (clamped at 2.5 m/s; the equation was validated for walking only)G — terrain grade in percentη — terrain coefficient (see next section)The three terms are intuitive once you read them: 1.5W is the resting/maintenance term, 2(W+L)(L/W)² is the load-carriage penalty (note the squared L/W ratio — heavier loads on lighter people cost disproportionately more), and η(W+L)(1.5V² + 0.35VG) is the velocity-and-grade work term.
RuckTrack accumulates M/4184 kcal per second while you're moving above 0.3 m/s. The 4184 conversion is the standard joules-per-kcal factor (1 kcal = 4184 J).
An unloaded baseline runs in parallel — the same equation with L = 0. Subtracting unloaded calories from loaded calories gives you the pack bonus in kcal, which is what shows up on the Calories screen and in the FIT file as pack_bonus_kcal.
Want to play with the numbers? The interactive rucking calorie calculator runs this exact function in your browser, loaded and unloaded side by side.
The terrain coefficient η scales the velocity-and-grade work term by how much energy the surface costs you. Values from the U.S. Army terrain-factor research (Soule & Goldman, 1972):
A 50 percent increase from Road to Sand, and 150 percent for soft snow, for the same speed and load: these are real numbers from the literature, not rough estimates. Pick the terrain in Settings before you start, or change it mid-activity. The value at save time writes to the FIT file as the terrain_factor field.
Vanilla Pandolf underestimates metabolic cost on negative grades — the equation goes mathematically silly when G is large and negative, sometimes returning a metabolic rate below resting. Santee et al. (2001) showed empirically that descent still costs at least the resting/maintenance term.
RuckTrack applies the Santee floor: on negative grades, M is floored at 1.5W. Calories don't dip below maintenance just because you're walking downhill.
The Pandolf equation needs speed and grade, both of which come from GPS. When GPS isn't usable — under tree cover, during the first minute of a session before lock, or when you stop on a hill for a break — Pandolf would either freeze or produce garbage.
RuckTrack handles this by accumulating calories from Garmin's native HR-based estimate (info.calories) during any tick where Pandolf isn't reliable. Specifically:
The total calorie number shown on the watch is a hybrid: Pandolf when Pandolf is valid, native HR fallback when it isn't. Both streams accumulate into the same running total, so the number never resets or drops when conditions change.
Indoor Auto mode is its own calorie path because you don't have GPS-derived speed or grade. The model:
The watch's HR-based estimate gets scaled up by a multiplier that grows with the load-to-body-weight ratio. The α = 0.4 coefficient was tuned to land between published HR-only estimates (which we know undercount loaded work) and Pandolf at typical treadmill speeds. It's not as physically grounded as Pandolf, but it's the right shape for the use case: you set the pack weight, walk, and let the watch's HR sensor do the per-second tracking. Good for instructor-led classes where the machine's incline changes constantly.
Indoor Manual mode runs the full Pandolf equation with user-set V (belt speed) and G (incline), no fallback. If you can read the belt speed off the machine, Manual gives you the same load-aware accuracy as outdoor.
The big calorie number at the top of an activity in Garmin Connect comes from Garmin's heart-rate model. When comparing, use Garmin's Total Calories line, not Active Calories: RuckTrack's numbers are gross totals that include resting burn, so Total is the apples-to-apples line. RuckTrack's number comes from the mechanical work your body did. Because those are two different methods, they rarely match exactly, and the gap runs in both directions depending on conditions.
On a treadmill, RuckTrack often reads higher than the headline. Heart-rate calorie models read low when your heart rate is low. A fit walker at an easy pace barely lifts their HR, so the watch infers a modest burn even though the work of walking that speed and incline hasn't changed. RuckTrack bills that work directly, so its number comes in above the heart-rate one. This is the case people sometimes mistake for the app over-counting; it isn't, as the cross-check below shows.
On flat outdoor ground, RuckTrack can read a little lower. With no grade and an easy pace the work term is small, and the heart-rate estimate can sit slightly above the work-based one.
When the two disagree on a treadmill, the answer is checkable, because the belt speed and incline are exact. The standard exercise-physiology formula for treadmill walking is the ACSM walking equation:
with S the speed in m/min and G the grade as a fraction. For a 74 kg walker at 3.0 mph (1.34 m/s) on a 3 percent incline, it predicts about 338 kcal/hr. RuckTrack's unloaded number for that same walk is about 358 kcal/hr, within roughly six percent of the independent standard. The takeaway isn't that RuckTrack is more accurate everywhere. It's that on a treadmill, where the inputs are exact, the work-based number matches published physiology, and a heart-rate number well below it is the one leaving the grade and the load out.
The figure that stays steady no matter which way the headline gap runs is the Pack Calorie Bonus: RuckTrack's loaded total minus its own unloaded total. It's never measured against Garmin's number, so it's the clean read on what the weight itself cost you.
For the narrative version of all this, with second-by-second data from a 45 lb, 1,000 ft climb and a test you can run on your own watch, see Does your Garmin count your pack weight?
The watch's Calories screen shows the live total, the average burn rate (kcal/hr), and the pack bonus percent. Calorie Details (Action button on any summary page) shows every input: total burn, the unloaded counterfactual, pack bonus in kcal and percent, the watch's native HR estimate for comparison, body weight, pack weight, terrain, and the speed and grade ranges seen during the session.
In Garmin Connect, the load-aware fields live under Stats → Connect IQ: Pack Weight, Ruck Calories, Calories Without Pack, Pack Calorie Bonus, Burn Rate, Terrain Surface, and (where applicable) Treadmill Mode and Incline. The headline calorie at the top of the activity stays as Garmin's native HR-only number, because Garmin doesn't let third-party apps write that field. The two numbers being different is the point — the headline answers "how hard did your body work?" while the Connect IQ section answers "how much of that came from the pack?"
Per-second grade and metabolic rate also write to the FIT record stream as developer fields. Open any saved ruck on Garmin Connect and you'll see them charted as time series alongside the native pace, HR, and elevation graphs.