FREE WORKOUT ANALYZER

Your workouts.
One clear week.

See how much time you actually recorded in each heart-rate zone. Bring your FIT or TCX files, review your week, and keep the results.

Free · No account · Files stay in your browser

YOUR WEEK, AT A GLANCEFictional example
80min in Zone 2
20
M
T
25
W
T
F
35
S
S
3 workouts120 min recorded3 min unclassified

Empty days: no record imported. Not assumed rest days.

An ivory runner on a curved track beside a kettlebell and a flowing green glass ribbon.
AI-generated conceptual illustration
01 Combine your workouts02 See every zone & data gap03 Save the table & chart

START WITH YOUR RECORDS

From activity files to answers.

Use the zone limits you already use on your device. We count recorded time; we don’t set training targets.

1 / ADD YOUR WORKOUTS

Drop FIT or TCX files here

Choose up to 12 files, 8 MiB each.
Single-sport activities with timestamped records.

No upload. No GPS, device IDs or names used. Refresh or clear to remove your records.

Showing a fictional sample. Import files to see your own review.

Where do I get a file?

Export a recorded activity from your current service as FIT or TCX, then choose it here. If the export is a ZIP, extract the individual activity files first.

Strava’s export instructions · Garmin’s export instructions

Not supported: Apple Health ZIP/XML, GPX routes, summary-only records, multisport FIT or direct watch syncing. Heart-rate gaps remain visible as unclassified time.

2 / USE YOUR EXISTING ZONES

Your zone lower limits

Enter the first bpm value in Zones 2, 3, 4 and 5 from your existing five-zone settings. The sample limits are fictional, not suggested targets.

bpm
bpm
bpm
bpm
min

One set of limits applies to all included workouts. Review one group at a time if your zone settings changed.

FICTIONAL SAMPLE · NOT YOUR RECORDS

Your weekly review

3 workouts · 1 week
Time in Zone 280.0 min
Recorded span120.0 min
Unclassified3.0 min
HR coverage*98%

*Classified time ÷ recorded time excluding explicit FIT pauses. Totals cover the selected workouts only; an unimported day is not a rest day.

Where your recorded time went

  • Zone 11–109 bpm15.0 min
  • Zone 2110–129 bpm80.0 min
  • Zone 3130–149 bpm17.0 min
  • Zone 4150–169 bpm5.0 min
  • Zone 5170–254 bpm0.0 min
  • Unclassified3.0 min
  • Paused0.0 min

Week by week

Monday–Sunday · Asia/Shanghai. A workout crossing a week boundary is split by timestamp.

Week of Sep 7, 20263 workouts · 80.0 min in Zone 2

No weekly goal set.

Each workout, explained

1. Running · Sep 7, 202620.0 min Z2

30.0 min recorded span · 0.0 min unclassified · 0.0 min explicitly paused. No extrapolation before the first or after the last record.

Zone 1
5.0 min
Zone 2
20.0 min
Zone 3
5.0 min
Zone 4
0.0 min
Zone 5
0.0 min
Unclassified
0.0 min
Paused
0.0 min
StartEnd · 30.0 min

Timeline preview samples up to 360 evenly spaced points. Totals above use every record; very short changes may not appear in this preview.

2. Cycling · Sep 9, 202625.0 min Z2

40.0 min recorded span · 3.0 min unclassified · 0.0 min explicitly paused. No extrapolation before the first or after the last record.

Zone 1
5.0 min
Zone 2
25.0 min
Zone 3
7.0 min
Zone 4
0.0 min
Zone 5
0.0 min
Unclassified
3.0 min
Paused
0.0 min
StartEnd · 40.0 min

Timeline preview samples up to 360 evenly spaced points. Totals above use every record; very short changes may not appear in this preview.

3. Running · Sep 12, 202635.0 min Z2

50.0 min recorded span · 0.0 min unclassified · 0.0 min explicitly paused. No extrapolation before the first or after the last record.

Zone 1
5.0 min
Zone 2
35.0 min
Zone 3
5.0 min
Zone 4
5.0 min
Zone 5
0.0 min
Unclassified
0.0 min
Paused
0.0 min
StartEnd · 50.0 min

Timeline preview samples up to 360 evenly spaced points. Totals above use every record; very short changes may not appear in this preview.

Keep a useful result.

Download the actual totals and a weekly graphic. Your data stays out of share links.

How the calculation works — and why it can differ from your watch

We analyze the span from the first to last timestamped record. Each reading applies until the next record, only when the gap is at most 30 seconds and both records belong to the same track. Longer gaps, missing or invalid heart rate and TCX track breaks are unclassified. A lower zone limit is inclusive: with a Zone 2 limit of 110 and Zone 3 limit of 130, readings from 110 through 129 fall in Zone 2.

Explicit FIT timer stop events are counted separately as paused. TCX track breaks are not assumed to be pauses. The timeline preview uses at most 360 evenly spaced points; the numeric totals use every record. We do not extrapolate before or after the recorded samples, use a file’s precomputed zone totals, estimate your maximum heart rate or reconstruct missing readings. Different sampling, timer rules and zone settings can produce different totals from another app.

Weeks start Monday in this browser’s time zone. Missing days are not counted as rest days. Repeated or overlapping recordings must be resolved before adding their time. All figures describe recorded data, not fitness improvement or a prescribed training plan.

Format references: FIT activity format · TCX schema · Software credits.

WANT TO SKIP THE FILE EXPORTS?

That’s the next app.

We’re exploring an iPhone app that brings existing workouts into a weekly review. It has not launched yet. Tell us if automatic summaries would save you time.

See the app idea & vote

Need to understand a zone first?

Read the illustrated guide

Prefer something to keep? Free PDF and diagrams · Apple Watch settings check

Compare two steady halves

Already have a steady run? Calculate heart-rate drift and speed/HR efficiency, choose the segment and export its inputs.