How To Migrate Your Strength History From Strong, Hevy, or Jefit to Platepusher

Article ยท 6 min read

Switch trackers without re-zeroing your training history.

A step-by-step export-and-import walkthrough for switchers, plus exactly which fields carry over from each app and which ones drop on the way in.

The switch you've been putting off

Three years of logs. Every top set, every backoff single, every time you ground out a rep at RPE 9.5 and typed a note about it. All of it lives inside one app, and you've decided to leave that app. The thing you're actually afraid of in that moment isn't a lost file. It's the line going flat: the slow, readable climb from a 275 squat to a 405 that took thirty-some cycles to build, suddenly demoted to a blank week 1 in a new tracker. Switchers brace for the clean slate. They assume a multi-year training career resets to 'new user' the second they change apps, so a lot of them just don't switch, and stay annoyed instead. You don't have to. Your history is portable, and the move takes about ten minutes once you know where each app hides the export.

Your log is the experiment, not a backup

Here is the frame that makes the whole job worth doing. Your training log is the longest experiment you've ever run: an N=1 study on a single subject, you, across hundreds of sessions, with the variables already recorded. Load, reps, RPE, bodyweight, the weeks you deloaded, the cycle where everything stalled. That data is not a backup you keep in case of disaster. It's the input to your next program. A new app that starts you at zero throws away the one thing no coach and no calculator can reconstruct: what your body actually did under the bar for the last three years. So the goal of migration is simple: carry the experiment forward intact, so day one in the new app already knows your real working maxes and your real rate of progress.

Why 'import supported' isn't enough

Most app marketing treats import as a checkbox. 'Import from CSV supported,' buried in a feature list next to dark mode. That framing quietly tells you the history is a nice-to-have, a courtesy, something to tick off during setup and forget. It's the wrong mental model, and it's why so many imports land badly: a wall of rows flattened into a single notes field, dates collapsed, set order scrambled, RPE gone. When the destination app doesn't respect the structure of a lifting log, your three years arrive as unreadable text instead of charted sets. The question that actually matters when you switch is whether your top set from eight weeks ago shows up as a top set the new app can plot a trend line through, not just a string of characters in a notes box. Most don't bother to get that right. Hold your candidate to it.

Where each app hides the export

Every app hides its export in a slightly different place, and one of them may charge for it. Here's where to look.

Strong: open your profile, then settings, and find the data export option Export Data is located inside the Settings tab in the Strong app. ([source](https://www.gainflow.app/blog/how-to-import-workouts-from-strong-to-gainflow)). It generates a CSV with one row per set: date, workout name, exercise, set order, weight, reps, and RPE if you logged it. This is the cleanest export of the three for our purposes, more on why in a second.

Hevy: the export lives in account settings on the web or in-app Hevy's CSV export is available on the free tier, no Pro subscription required. The export uses different column headers than Strong (notably `exercise_title`, `start_time`/`end_time`, `weight_lbs`, and a `set_type` field that distinguishes warmup from working sets), and exercise names include a parenthesized equipment suffix (e.g. "Bench Press (Barbell)").. Hevy's CSV is structured per set as well, with its own column names.

Jefit: Jefit offers self-serve CSV export via jefit.com/my-jefit/settings under 'Data Controls', producing a CSV file of all workout data including sets, reps, weight, and timestamps. ([source](https://github.com/sondrealf/JeFit2Hevy)) If Jefit only exports a summary or a PDF, note that going in: you may be able to bring totals and exercise lists but not every individual set.

Whichever you use, email the file to yourself or save it to Files so it's reachable from your phone.

Which columns actually survive the import

Now the part that decides whether the import is worth anything: which columns survive. Platepusher's importer was built to read Strong's exact column shape, so a Strong export maps the closest to one-for-one. Date, exercise name, set order, weight, reps, and RPE all land as native, charted, queryable sets. Platepusher reads the following columns from Strong (and compatible) CSV exports: Date, Exercise Name, Weight, Reps, Workout Name, Set Order, set-level Notes, workout-level Notes, Seconds/duration (supporting m:ss and h:mm:ss formats), and Set Type (to flag warmup sets). The one Strong column it recognizes but does not yet import is Distance, distance/cardio distance data is silently skipped..

Hevy and Jefit use different headers, so the import remaps them. The structural fields, date, exercise, weight, reps, set order, carry over. Hevy exports map cleanly to Platepusher: date, workout name, exercise name (equipment suffixes like "(Barbell)" are automatically stripped for catalog matching), set order, weight, reps, timed-hold seconds, per-set notes, and warmup flags via the `set_type` column are all imported; fields with no equivalent in Platepusher's model, such as per-set RPE, cardio distance, and any custom media attachments, are silently dropped. Jefit's one-row-per-exercise format (where reps and weights are stored as comma-delimited lists like `"8,6,5"` and `"185,205,215"`) is automatically expanded into individual set rows so the body-part, equipment, unit, and duration columns map through, but Jefit's rest-timer and duration-per-set fields have no direct target and are not retained..

What tends to drop across all three: app-specific extras that aren't part of a strength log proper, custom exercise photos, in-app rest-timer settings, social and feed data, and anything stored as a body measurement rather than a set. None of that changes your strength history. Your sets are the experiment; the rest is decoration. Before you trust the import, this mapping is the thing to check.

What you get on day one

Once the CSV lands, the payoff shows up immediately, and it isn't a welcome screen. Your working maxes are real on day one, calculated from sets you actually hit, not a number you typed into a setup wizard. The progression chart on your main lifts has its full slope, three years of it, so the trend line means something the first time you open it. And the plateau read has something to read: it can flag the lift whose top set has stopped moving across the last several weeks, because those weeks came with you. The math runs against your history, not against a blank slate it's still waiting for you to fill. That's the whole reason to carry the log forward instead of starting clean. A new app that knows what your body has done is an instrument. A new app that knows nothing is a fresh notebook, and you already filled three of those.

Verify before you delete the old app

One last step before you delete the old app. Spot-check the import: pick three lifts you know cold, your last squat top set, a recent bench AMRAP, a deadlift single, and confirm the weight, reps, and date match what you remember. Open the progression chart on each and make sure the line is continuous, with no gap where the migration happened. If a field looks off, you still have the CSV and the source app, so nothing is lost while you sort it out. Keep the old app installed for a cycle. Once two or three weeks of new sessions sit on top of three years of imported history and the chart reads as one continuous record, the switch is done, and your training career came with you.

Export your history, drop the CSV into Platepusher, and watch three years of lifting land as native data: every set, every date, every working max intact.

Platepusher's importer was built around Strong's exact CSV column shape, so a clean export lands as native, charted sets rather than a flattened note dump. CSV export stays free at every tier too, including the day you decide to leave again. The lifter keeps the experiment either way.