Beyond Garmin Connect
Switching from Garmin to COROS: what you keep, what you lose
August 2, 2026
The short answer
Your activities move. Every conclusion Garmin reached about you stays behind, and no export you can request will carry it across.
That split is the whole story. FIT is a shared format, so the recording of what you did travels intact: per-second heart rate, pace, GPS, cadence, power, laps. What does not travel is the derived layer built on top of those recordings — VO2 max history, Training Status, Body Battery, HRV baseline, Training Readiness — because those numbers only mean anything relative to personal baselines that live inside Garmin's servers and get recomputed from scratch on a new platform.
This is a data-portability guide, not a watch comparison. We do not review hardware, and nothing here is an argument for or against either brand's product. It is an answer to one question: if you make the move, what is in the box when you arrive?
What moves cleanly
The unit of portability is the FIT file, and both platforms speak it.
On the Garmin side you request the full account archive from Account Settings, as covered in our guide to exporting everything out of Garmin Connect. The activity files arrive nested a level deeper than most people expect: an uploaded-files folder under DI_CONNECT/ holds further ZIPs, and the FIT files live inside those. Garmin does not publish a turnaround time for assembling the archive, so request it a week before you need it rather than the night you plan to switch.
On the COROS side you upload through Training Hub on the desktop web, at Activity List > Import Data. COROS accepts FIT and TCX and nothing else, rejects any file under 20 KB as empty, and fails any single file or ZIP over 200 MB. COROS also publishes a Garmin-specific import guide that points you at exactly that DI_Connect folder, alongside equivalents for Strava, Polar and Apple. Garmin publishes no such guide in the other direction. A company writing documentation for importing its competitor's history is telling you something about how it thinks about lock-in.
Expect the upload to be slow. COROS says a large import can take over an hour to process, and its Strava import page warns that activities may not appear for 30 minutes or more after the upload finishes.
What is inside those files when they land is everything the sensors saw. That part is genuinely yours, and it is the reason the raw file is worth more than the summary.
What does not move
Three things fail here, in three different ways, and people conflate them.
Tier one: it is in your archive, and COROS cannot read it. Garmin's bulk export does include your wellness data as JSON under DI_CONNECT/DI-Connect-Wellness/ — sleep, stress, Body Battery and HRV, in files like 2024-09-22_2024-12-31_<id>_sleepData.json. You own those files. COROS's importer takes FIT and TCX, so a folder of Garmin wellness JSON is a folder you can open in a text editor and nothing else. Garmin did the portable thing here and it still does not help you, because portability requires a receiver.
Tier two: it was never in the archive at all. Training Status history (the Base, Build, Peak, Unproductive labels) is not stored in exportable form. Neither is your VO2 max trend at full granularity, nor your saved courses. So the layer that people most want to keep is the layer neither company hands over. Our COROS export guide found the mirror image on the other side: COROS documents no export path for EvoLab history, Base Fitness or Marathon Level either. Both companies export the measurements and keep the interpretation.
Tier three: the baselines underneath. This is the one that actually costs you time. Garmin's HRV Status plots your overnight average against a rolling personal baseline, and by our own reading of it the baseline needs roughly one week before the metric appears at all and three to four weeks before it stabilises. Training Status judges your load against an optimal range computed from your last four weeks. Body Battery and Training Readiness are built on the same kind of accumulated personal normal. None of that is a number in a file. It is a model fitted to you, and a new platform has to fit its own.
COROS is explicit about part of its version of this, which I give it credit for. Its documentation states that imported non-COROS workouts can feed EvoLab, but only eligible ones: for a run to count, the heart rate has to exceed 65% of your heart rate reserve added back to your resting heart rate. COROS's worked example is a runner with a max of 180 and a resting rate of 50 needing to hold above 135 bpm. Separately, COROS states that receiving running fitness metrics in the first place takes a 25-minute outdoor run in Run or Track Run mode, and that keeping them updated takes one such run at least every 90 days.
That leaves an easy trap. Your easy Garmin runs, your recovery jogs, your long slow Sundays — the bulk of a sensible training week — may import as history without contributing to the model that decides what COROS thinks of your fitness.
How long the rebuild actually takes
Here is where I want to argue against the way this loss is usually described.
The number people grieve hardest over is VO2 max, and they should grieve it least. We tracked what Garmin's estimate actually does across 42 athletes with at least 180 days of history each, and published it at our VO2 max drift study:
- The estimate changes a median of 16 times per 90 days. Roughly every sixth day.
- When it changes, the median move is 0.2 points, across 14,919 observed changes.
- Over a full year, the median absolute change is 2.0 points (29 athletes with a year or more). Just over half of those athletes moved by 2 points or less.
- The median athlete's lifetime spread between their highest and lowest estimate is 9.9 points.
Read those together. The number twitches constantly, moves almost nothing each time, and lands within about 2 points of where it started after a year of training. Most of that 9.9-point lifetime range is the width of the algorithm's own uncertainty rather than fitness gained and lost, which is the case we make in more detail on how accurate Garmin's VO2 max estimate really is.
So my opinion, plainly: losing your VO2 max history in a platform switch costs you almost nothing, and the people who stay on a platform to protect that chart are protecting a number that would have wandered 2 points on its own. A new platform will land you within a couple of points of your old estimate inside a few weeks of normal running, and the difference will be smaller than the noise you were already living with.
The cohort caveat matters and I will not bury it: these are self-selected Garmin users who connected a training-analytics app, so they are likely fitter and more data-curious than average, and 6 accounts were excluded as non-independent. The full computation is described in our methodology.
What genuinely takes time is the recovery and readiness layer. Those metrics are comparisons against your own accumulated normal, and there is no shortcut: the platform has to watch you sleep for weeks before its judgement means anything. Expect a month of ignoring your new watch's opinion of your recovery, and treat any recovery score it shows you in the first three weeks as decoration. That is the real switching cost, and it is measured in weeks of wearing the thing, not in files.
Pre-switch checklist
Do these before the old account goes quiet.
- Request the Garmin archive first, then wait. Nothing else on this list works until it arrives, and the timeline is not published.
- Keep the archive after you import it. The wellness JSON is the only copy of your sleep, stress and HRV history that you will ever hold. COROS will not take it, but a future tool might, and Garmin will not hand it to you twice on demand.
- Screenshot the derived numbers you care about. Your current VO2 max, Training Status, HRV Status and lactate threshold estimate. This is a manual, unglamorous step and it is the only way that layer survives in any form.
- Note your race PBs and your training-zone settings by hand. Zones are configuration, not data, and configuration does not ride along in a FIT file.
- Import in chunks under 200 MB. Larger uploads fail, and a rejected 900 MB ZIP tells you nothing about which files were the problem.
- Expect rejections and do not chase them. Sub-20 KB files are aborted recordings and empty sessions. Losing them costs you nothing.
- Start the recovery baseline early. If you have both watches for a week, wear the new one overnight from day one. The clock on the baseline starts when the sensor does, not when you stop using the old watch.
- Verify a sample, not the total. Open five imported activities across different years and check that heart rate and laps are present. Counting rows proves nothing about whether the payload survived.
Frequently Asked Questions
Will my Garmin VO2 max carry over to COROS?
No. COROS computes its own running fitness metrics from activities it considers eligible, and the number Garmin showed you is not an input. Based on our drift data, the estimate you arrive at will probably sit within a couple of points of the one you left, once you have logged enough qualifying runs.
Can I move my Garmin sleep and HRV history to COROS?
No. Garmin gives you that history as JSON in the bulk archive, but COROS's importer accepts only FIT and TCX. Keep the JSON as an archive; it will not become part of your COROS account.
How many activities can I import at once?
COROS caps any single file or ZIP at 200 MB and rejects files under 20 KB. It publishes no limit on total activity count, and says a large import can take over an hour to process.
Do imported Garmin runs count toward COROS EvoLab?
Some of them. COROS states that eligible non-COROS workouts feed EvoLab, with a heart rate threshold that excludes easy running. Your hard sessions are more likely to count than your recovery runs.
Should I keep my Garmin account open after switching?
Yes, at least until the new baselines settle. It costs nothing, and it is the only place your derived history still exists in readable form.
One thing worth sitting with before you decide. The reason this migration is lopsided is not that either company built a bad export. It is that the valuable product was never the file. Both platforms hand over the measurements without much argument and keep the judgement, because the judgement is what you were paying for, and a judgement is only worth anything next to a baseline that a competitor does not have. That is a defensible business decision and a lousy deal for you, and it will stay that way until a platform ships an import that accepts a rival's derived history rather than just its GPS tracks. Nobody has. Until somebody does, switching watch brands means starting the part of the data that talks back to you from zero, and the only real question is whether the next month of ignoring your recovery score is worth whatever you are switching for.