# Support for rowing data / migrating from rowsandall.com

**URL:** <https://forum.intervals.icu/t/support-for-rowing-data-migrating-from-rowsandall-com/117915>\
**Category:** Uncategorized\
**Created:** [21 December 2025 13:30 UTC](https://forum.intervals.icu/t/support-for-rowing-data-migrating-from-rowsandall-com/117915 "2025-12-21T13:30:15Z")\
**Posts on this page:** 1\
**Showing post:** 32

<div class="post-metadata">

**Author:** ![Sander\_Roosendaal](https://forum.intervals.icu/user_avatar/forum.intervals.icu/sander_roosendaal/32/46463_2.png) [@Sander\_Roosendaal](https://forum.intervals.icu/u/Sander_Roosendaal)\
**Post date:** [13 March 2026 08:40 UTC](https://forum.intervals.icu/t/support-for-rowing-data-migrating-from-rowsandall-com/117915/32 "2026-03-13T08:40:52Z")

</div>

Hi there, I am working on FIT export from Rowsandall that captures some of the fields as developer fields. Here’s what I am planning so far. Your feedback is appreciated:

| rowingdata column | Developer field name | Base type | Scale | Units |
| --- | --- | --- | --- | --- |
| DriveLength (meters) | DriveLength | UINT16 | 1000 | m |
| DriveTime (ms) | DriveTime | UINT16 | 1 | ms |
| DragFactor | DragFactor | UINT16 | 1 | |
| StrokeRecoveryTime (ms) | StrokeRecoveryTime | UINT16 | 1 | ms |
| AverageDriveForce (lbs) | AverageDriveForceLbs | UINT16 | 10 | lbs |
| PeakDriveForce (lbs) | PeakDriveForceLbs | UINT16 | 10 | lbs |
| AverageDriveForce (N) | AverageDriveForceN | UINT16 | 10 | N |
| PeakDriveForce (N) | PeakDriveForceN | UINT16 | 10 | N |
| AverageBoatSpeed (m/s) | AverageBoatSpeed | UINT16 | 1000 | m/s |
| WorkoutState | WorkoutState | UINT8 | 1 | |

Regular fields:

| rowingdata column | FIT field | Type | Notes |
| --- | --- | --- | --- |
| TimeStamp (sec) | `timestamp` | Native | Seconds since 1970-01-01 UTC; relative timestamps are combined with `row_date` |
| `cum_dist` or ` Horizontal (meters)` | `distance` | Native | Cumulative distance in meters (FIT scale 100) |
| ` Cadence (stokes/min)` | `cadence` | Native | Stroke rate in strokes/min; omitted if zero |
| ` HRCur (bpm)` | `heart_rate` | Native | Clamped to 0–255 (FIT uint8) |
| ` Power (watts)` | `power` | Native | Clamped to 0–65535 (FIT uint16) |
| ` Stroke500mPace (sec/500m)` | `enhanced_speed` | Native | Converted to m/s via 500/pace; FIT scale 1000 |
| ` latitude` | `position_lat` | Native | Degrees; omitted if missing or invalid |
| ` longitude` | `position_long` | Native | Degrees; omitted if missing or invalid |

And session data:

| Source | FIT message | Fields |
| --- | --- | --- |
| Session totals | `SessionMessage` | `total_distance`, `total_calories`, `avg_heart_rate`, `max_heart_rate`, `avg_cadence`, `avg_power` |
| Lap boundaries | `LapMessage` | Same as session; currently one lap for the whole workout |
| Position | `LapMessage` | `start_position_lat/long`, `end_position_lat/long` (degrees) when valid |

---

_[View the full topic](https://forum.intervals.icu/t/support-for-rowing-data-migrating-from-rowsandall-com/117915)._
