What this does
Fake My Walk builds a Walking activity file you can upload to Strava. You trace the route on the map, set a pace, and it derives everything else — distance from the geometry you drew, then cadence, step count, heart rate and calories from published physiology. Nothing leaves your browser: the file is generated locally and downloaded straight to your machine.
Walking only. It does not produce runs, rides, or any other activity type.
FIT or GPX — which should I download?
Use FIT. It is the only format with a real sport = walking value, so Strava
types the activity correctly with no fixing up, and the only one with fields for total steps and calories at
all. GPX has nowhere to put a calorie count at any level.
| Field | FIT | GPX |
|---|---|---|
| Activity type = Walk | sport = 11 | <type>walking</type> |
| Distance | stated outright | measured from the points |
| Total steps | total_cycles × 2 | derived from cadence |
| Calories | total_calories | no such field |
| Heart rate & cadence | yes | Garmin TrackPointExtension |
What Strava keeps, and what it overrides
A generated FIT file was uploaded to Strava and checked field by field. Everything the file stated was taken verbatim:
- Distance, moving time, average speed and heart rate — used exactly as written.
- Steps — 764 strides in the file became 1,528 steps on Strava, confirming the stride-doubling convention.
- Calories — Strava displayed our figure rather than substituting its own estimate.
Two things it does not take from the file:
- Elevation. Strava replaces it with its own terrain data for wherever the route is. That is why this app writes no elevation at all — an invented altitude would never reach the screen.
- The title. FIT has no activity-title field, so Strava names the upload from the time of day: a walk starting at 11:31 arrives as "Lunch Walk". Rename it afterwards, or upload the GPX.
How the numbers are worked out
Cadence and step count
Step length and cadence both change with speed following Grieve's power laws — step length ∝ v0.43, cadence ∝ v0.57. The exponents sum to 1, so step length × cadence = speed holds exactly at every sample. The step count is an integral of that model rather than a separate guess, which is why steps, distance and duration cannot disagree. Your height anchors it: preferred walking speed comes from dynamic similarity, step length from the standard 0.413 × height estimate.
Calories
The ACSM walking equation gives oxygen uptake, converted at 5 kcal per litre of oxygen consumed — not looked up from a MET table.
Heart rate
Metabolic demand maps to heart rate through %HRR = %VO₂R, passed through a first-order lag for cardiac response, plus drift and beat-to-beat noise. Both reserves are anchored at standing rest rather than lying rest, because the equivalence is only validated above about 40% of reserve and a walk sits below that. If you know your own walking heart rate, enter it as a target average and the curve is scaled to hit it exactly.
Questions
Why is the distance slightly more than the route I drew?
GPS wander is modelled as slow, correlated drift, which adds a few tenths of a percent to the written track. The app reports that measured figure because it is what a reader gets from the geometry. Moving time is solved against it, so your typed pace comes out exact. Set GPS wander to 0 if you want the two to match.
Why is there no temperature or elevation?
Nothing here measures either one. Both were previously invented — a flat 18 °C and a synthetic hill profile — and both are now left out. An absent reading is honest; a plausible-looking invented one is not.
Is it accurate?
The models are published relationships, and the file is checked by a test suite that includes a FIT decoder written independently from the specification. The app also warns you when a walk stops being plausible — too fast, cadence outside the normal range, or a heart rate too high for the effort.
A note on what this is for
These files describe a walk that did not happen. That is fine for testing an importer, filling a gap after a watch failed, or understanding how Strava reads a format. It is not fine for challenges, leaderboards, or anywhere someone else is relying on the data being real.