Fitness App Screenshot Extraction

Pull Distance, Pace, Elevation, and Heart Rate from a Strava Activity Screenshot

Manually copying stats from a shared Strava activity image into a log takes 90 seconds per screenshot — this pulls all five fields in 5 seconds.

5s per screenshot · Up to 99% accuracy on clear screenshots · No account login needed

Moving Time
Distance
Elevation Gain
Avg Heart Rate

What You Can Pull from a Strava Activity Screenshot

With Custom Column Extraction, you type the field names — Distance, Moving Time, Pace, Elevation Gain, Avg Heart Rate — and the AI locates each value on the shared stat card image regardless of the activity type or unit preference.

FieldRun ExampleRide Example
Distance10.5 km42.3 km
Moving Time54:321:42:15
Pace / Speed5:12 /km24.8 km/h
Elevation Gain95 m312 m
Avg Heart Rate152 bpm128 bpm

* Strava's official Bulk Export (Settings > My Account > Download or Delete Your Account > Request Your Archive) provides a complete activities.csv with all metrics for every activity — plus GPX/FIT/TCX files for GPS data. If your account is still active and you need historical data, that export is more comprehensive. This page is for the scenarios where you do not have account access: a friend or coach shared a screenshot, your old account is deactivated, or you have switched platforms.

Why Strava's Stat Card Is Designed for Sharing, Not Data Extraction

Strava's activity summary image — the one you share to Instagram or WhatsApp — packs distance, pace, elevation, heart rate, and a map into a single composite layout. It is designed to look good on social media, not to feed structured data into a spreadsheet. Semantic extraction reads each stat card by understanding field labels, not UI positions.

Why Position-Based Tools Struggle with Strava Stat Cards

01

The stat card layout is a composite of map + cards. Strava's shareable image places a map on top (~40% of the image) and stat cards below in a grid. The map contains no extractable structured data, but generic OCR tools waste effort trying to parse it and often confuse map labels (street names, elevation markers) with activity stats.

02

Elevation Gain looks like Elevation, and units vary by user setting. Strava displays "Elevation Gain" in the stat cards, but the same screenshot may also show "Elevation" on the map. One user's account shows miles and feet; another's shows kilometres and metres. Pace vs Speed changes depending on whether the activity is a run or a ride. Traditional OCR treats all numbers the same, mixing them up.

03

Heart rate zones are colour-coded, not text-labelled. Strava's HR display shows a coloured bar with five zones (grey, blue, green, orange, red) but no text labels for each zone's range. A user on Reddit described the process: "Go to activity > share activity icon, next to ellipsis > grey more button furthest right > save image. Can save photo with stats." The image is saved — but the colour-coded zones are not readable as numbers.

How Semantic Extraction Reads the Stat Card by Meaning

01

Name the fields — the AI finds values by label, not position. Define "Distance, Moving Time, Pace, Elevation Gain, Avg Heart Rate." The AI locates "Distance" by finding the stat card with the word "Distance" next to a number and unit. It ignores the map entirely. Same column set works for a 5 km run, a 100 km ride, or a swim.

02

Handles both metric and imperial without pre-configuration. If the account owner set their units to miles, the AI reads "6.2 mi" as Distance. If they use kilometres, it reads "10.5 km" the same way. The model reads the unit label (mi, km, ft, m, /km) to determine what the number represents.

03

Works from the shared image — no Strava account needed. Whether the screenshot is from your own phone or a teammate's, the AI reads visible data from the image. A coach collecting athlete screenshots, a race director tracking participant splits — no API key, no OAuth flow, no login required.

From a Shared Strava Screenshot to a Structured Activity Log in Three Steps

1

Upload the Stat Card Screenshot

You have a Strava activity screenshot — maybe a friend shared their morning run on WhatsApp, or a teammate posted their ride in the group chat. The image shows the standard Strava shareable card: a map on top, stat cards below with Distance, Moving Time, Pace, Elevation Gain, and Avg Heart Rate. Drag the image into the upload area. JPG, PNG, or WebP, no special preparation needed. If you have multiple screenshots from different athletes, upload them all at once.

2

Name the Columns You Want

Type Distance, Moving Time, Pace, Elevation Gain, Avg Heart Rate. The AI scans the screenshot, locates each stat card by its label ("Distance", "Moving Time", etc.), and reads the corresponding value. The map area is ignored — the model focuses on the structured stat cards below it. If the screenshot uses imperial units (miles, feet), the AI reads them correctly. If it uses metric (km, m), it reads those too.

3

Download a Clean Activity Log

Processing takes 5 seconds per screenshot. The output is one XLSX file: each row is one screenshot, each column is one field you named. If you uploaded three screenshots from three different athletes, you get three rows — Distance, Moving Time, Pace, Elevation Gain, and Avg Heart Rate filled for each (~18x faster than manually copying each stat from each image).

When It Works Best — and When to Be Cautious

Understanding these boundaries helps you get consistent results from Strava activity screenshots.

When It Works Best

Clear, full-resolution Strava shareable stat card images. Machine-rendered stat card text achieves up to 99% accuracy on Distance, Moving Time, Pace, Elevation Gain, and Avg Heart Rate.

Standard stat card labels present in the image. The AI relies on field labels like "Distance", "Moving Time", "Elevation Gain", and "Avg Heart Rate". Screenshots where these labels are clearly visible produce the most reliable results, regardless of the activity type (run, ride, swim, hike).

Mixed batch of screenshots from different athletes. Upload stat cards from multiple runners, cyclists, or hikers in one batch. The same column set produces a consolidated spreadsheet.

When to Be Cautious

Screenshots cropped or compressed through messaging apps. Stat card images shared through WhatsApp, Instagram, or SMS lose resolution. Small text like "Elevation Gain" and "Avg Heart Rate" may become unreadable, reducing field-level accuracy.

Colour-coded heart rate zones only. The AI extracts the visible Avg Heart Rate number (e.g., 152 bpm) from the stat card. It does not interpret the colour-coded zone bar — zone breakdowns (time in Zone 2 vs Zone 4) are not text-labelled in the shareable image and cannot be extracted.

Not a replacement for Strava's official export. If you have account access, Strava's Bulk Export gives you GPS tracks, per-kilometre splits, power data, and historical CSV summaries. Screenshot extraction only captures the five visible stat card values. Use the official export when you need the full dataset.

Frequently Asked Questions

Can I extract data from a Strava screenshot without logging into the account?

Yes. The tool reads whatever is visible in the image. There is no Strava account login, no API key, and no OAuth required. If someone shares a screenshot of their activity with you, you upload it, name your columns, and the AI extracts the visible stat card data. This is the key difference from export-based tools that require account access. However, if you or the athlete still have access to their Strava account, the official export produces a more complete dataset.

How does the AI distinguish Distance from Elevation Gain on the stat card?

Each stat card has a label and a value. Distance is labelled "Distance" and appears with a unit like km or mi. Elevation Gain is labelled "Elevation Gain" and appears with a unit like m or ft. The AI reads the label—value—unit triplet, not the card's position on the screen. A number without a Distance or Elevation Gain label is not reported as either field. This prevents confusion between the stat card values and any numbers on the map portion of the screenshot.

Does the tool work with Strava screenshots in imperial units (miles, feet)?

Yes. The AI reads the unit label alongside each value. If the screenshot shows "6.2 mi" for Distance and "312 ft" for Elevation Gain, the model captures the number and preserves the unit as extracted. You can normalise units in the output spreadsheet or keep them as-is. The same applies to Pace — whether it shows min/mi or /km, the AI reads the unit suffix.

Can I batch-process multiple Strava activity screenshots into one spreadsheet?

Yes. Upload multiple screenshots — from different athletes, different activity types, or different dates — in a single batch. Define your column set once. The AI processes each screenshot independently. The output is one XLSX file with one row per screenshot, each row containing the five stat card fields. This is useful for coaches collecting athlete data, race organizers tracking participant splits, or team managers consolidating training logs.

Why would I use screenshot extraction instead of Strava's official export?

You wouldn't — if you have account access. Strava's official GPX/FIT/TCX export and Bulk Archive (activities.csv) are more complete, providing GPS tracks, power data, splits, and historical summaries. Screenshot extraction is for the scenarios where the official export is not available: a screenshot shared by a friend or teammate, an old account you can no longer log into, or a race day photo from an event page. The two methods serve different access scenarios, and we recommend the official export whenever possible.

📮 contact email: [email protected]