Zyra Workouts is in development and not yet on the App Store; screens may change before release.
Your training log in Zyra Workouts is yours to take out. Two taps under More produce a CSV or JSON file with every set you have logged, handed to the iOS share sheet so it can go to Files, a spreadsheet, or another app. This guide covers the sheet, the exact columns, and the one column whose label is misleading.
What it does
More → Data → Export workouts → opens a small sheet:
| Setting | Options | Result |
|---|---|---|
| Format | JSON · CSV | zyra-workouts-<timestamp>.json or .csv |
| Range | All · 90D · 30D | Sessions started within the last 90 or 30 days, or everything |
Tap Export and the system share sheet appears with the file. Nothing is uploaded anywhere by the app itself; where the file goes is your choice in that sheet.
Step by step
- More tab → Data card → Export workouts →.
- Pick CSV for a spreadsheet, JSON for a full-fidelity copy.
- Pick the range. "All" for a backup, 30D or 90D for a quick look at a training block.
- Tap Export. Choose a destination — Save to Files is the simplest.
- Open it. In a spreadsheet, filter
set_typetostandard,drop,myoandfailureto exclude warm-ups, since they are included and labelled rather than dropped.
What the numbers mean
The CSV is one row per logged set with eight columns:
| Column | Contents | Notes |
|---|---|---|
date | Session start date, YYYY-MM-DD | UTC date of the session start |
exercise | Exercise name | Deleted custom exercises appear as "Custom exercise (deleted)" |
set_type | standard · warmup · drop · myo · failure | Drop and myo sub-entries are their own rows |
side | none · left · right | From the L/R split |
weight_kg | Load in kilograms | Always kg, even with the lb display setting |
reps | Full reps | |
partial_reps | Partial reps | 0 when none |
rir | Stored effort value, 6–10, or empty | 10 = 0 RIR; RIR = 10 − value |
The last column deserves a sentence. Internally the app stores effort as a 6–10 number (10 − RIR), and the export writes that raw value under the heading rir. A set you logged at 2R therefore exports as 8; a failure set as 10; a set with no chip chosen as an empty cell. The RIR / RPE converter is the same translation. Working-set volume in your own spreadsheet is weight_kg × reps over non-warm-up rows, which reproduces the app's session totals; partials add nothing, matching the app.
JSON differs by range: "All" writes the app's whole history document as stored; 90D and 30D write an array of the matching sessions. Either way the shape is the app's own — sessions containing exercises containing sets, with ids, timestamps in milliseconds, per-session volume and PR count, and any notes.
Gotchas
- Sets are in kilograms. Convert in the spreadsheet (
× 2.2046) if you want pounds; the app does not export lb. - Warm-ups are in the file. Filter them out yourself; every other surface in the app excludes them, the export does not.
- The date is the session start, in UTC. A late-evening session can land on the next calendar day in the file.
- Body-weight and measurements are not in the workout export. It covers sessions only; the JSON is the workout history document.
- No import yet. CSV import / backfill and XLSX are roadmap items. The export is the way out, not yet a way back in — keep the JSON if you want a complete copy.
The short version
More → Data → Export workouts → JSON or CSV, All / 90D / 30D, Export, share. CSV is one row per set — date, exercise, set_type, side, weight_kg, reps, partial_reps, rir — in kilograms, warm-ups included, and the rir column is the stored 6–10 effort value (RIR = 10 − value). JSON "All" is the whole history. Import is coming, not built. Zyra Workouts is a training log, and this page describes one of its features as built today. Educational overview only — not medical advice.