Skip to content

Performance Summary

ZoneTimeMinutes pydantic-model

Bases: OtfItemBase

Time spent in each heart rate zone during a workout, measured in minutes.

Show JSON schema:
{
  "description": "Time spent in each heart rate zone during a workout, measured in minutes.",
  "properties": {
    "gray": {
      "description": "Minutes in the gray (rest) zone.",
      "title": "Gray",
      "type": "integer"
    },
    "blue": {
      "description": "Minutes in the blue (light effort) zone.",
      "title": "Blue",
      "type": "integer"
    },
    "green": {
      "description": "Minutes in the green (base pace) zone.",
      "title": "Green",
      "type": "integer"
    },
    "orange": {
      "description": "Minutes in the orange (push pace) zone.",
      "title": "Orange",
      "type": "integer"
    },
    "red": {
      "description": "Minutes in the red (all-out) zone.",
      "title": "Red",
      "type": "integer"
    }
  },
  "required": [
    "gray",
    "blue",
    "green",
    "orange",
    "red"
  ],
  "title": "ZoneTimeMinutes",
  "type": "object"
}

Fields:

gray pydantic-field

gray

Minutes in the gray (rest) zone.

blue pydantic-field

blue

Minutes in the blue (light effort) zone.

green pydantic-field

green

Minutes in the green (base pace) zone.

orange pydantic-field

orange

Minutes in the orange (push pace) zone.

red pydantic-field

red

Minutes in the red (all-out) zone.

HeartRate pydantic-model

Bases: OtfItemBase

Heart rate statistics from a workout.

Show JSON schema:
{
  "description": "Heart rate statistics from a workout.",
  "properties": {
    "max_hr": {
      "description": "Member's configured max heart rate.",
      "title": "Max Hr",
      "type": "integer"
    },
    "peak_hr": {
      "description": "Highest heart rate reached during the workout.",
      "title": "Peak Hr",
      "type": "integer"
    },
    "peak_hr_percent": {
      "description": "Peak HR as a percentage of max HR.",
      "title": "Peak Hr Percent",
      "type": "integer"
    },
    "avg_hr": {
      "description": "Average heart rate during the workout.",
      "title": "Avg Hr",
      "type": "integer"
    },
    "avg_hr_percent": {
      "description": "Average HR as a percentage of max HR.",
      "title": "Avg Hr Percent",
      "type": "integer"
    }
  },
  "required": [
    "max_hr",
    "peak_hr",
    "peak_hr_percent",
    "avg_hr",
    "avg_hr_percent"
  ],
  "title": "HeartRate",
  "type": "object"
}

Fields:

max_hr pydantic-field

max_hr

Member's configured max heart rate.

peak_hr pydantic-field

peak_hr

Highest heart rate reached during the workout.

peak_hr_percent pydantic-field

peak_hr_percent

Peak HR as a percentage of max HR.

avg_hr pydantic-field

avg_hr

Average heart rate during the workout.

avg_hr_percent pydantic-field

avg_hr_percent

Average HR as a percentage of max HR.

PerformanceMetric pydantic-model

Bases: OtfItemBase

A single performance metric with display and raw values.

Show JSON schema:
{
  "description": "A single performance metric with display and raw values.",
  "properties": {
    "display_value": {
      "description": "Formatted value for display (e.g. '6:30').",
      "title": "Display Value"
    },
    "display_unit": {
      "description": "Unit label for display (e.g. 'min/mi', 'mph').",
      "title": "Display Unit",
      "type": "string"
    },
    "metric_value": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "integer"
        }
      ],
      "description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
      "title": "Metric Value"
    }
  },
  "required": [
    "display_value",
    "display_unit",
    "metric_value"
  ],
  "title": "PerformanceMetric",
  "type": "object"
}

Fields:

display_value pydantic-field

display_value

Formatted value for display (e.g. '6:30').

display_unit pydantic-field

display_unit

Unit label for display (e.g. 'min/mi', 'mph').

metric_value pydantic-field

metric_value

The raw value of the metric, as a float or int. When time this reflects seconds.

BaseEquipment pydantic-model

Bases: OtfItemBase

Base class for equipment performance data shared between treadmill and rower.

Show JSON schema:
{
  "$defs": {
    "PerformanceMetric": {
      "description": "A single performance metric with display and raw values.",
      "properties": {
        "display_value": {
          "description": "Formatted value for display (e.g. '6:30').",
          "title": "Display Value"
        },
        "display_unit": {
          "description": "Unit label for display (e.g. 'min/mi', 'mph').",
          "title": "Display Unit",
          "type": "string"
        },
        "metric_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
          "title": "Metric Value"
        }
      },
      "required": [
        "display_value",
        "display_unit",
        "metric_value"
      ],
      "title": "PerformanceMetric",
      "type": "object"
    }
  },
  "description": "Base class for equipment performance data shared between treadmill and rower.",
  "properties": {
    "avg_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average pace during the workout segment."
    },
    "avg_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average speed during the workout segment."
    },
    "max_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Fastest pace achieved."
    },
    "max_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Maximum speed achieved."
    },
    "moving_time": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total time spent actively moving."
    },
    "total_distance": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total distance covered."
    }
  },
  "required": [
    "avg_pace",
    "avg_speed",
    "max_pace",
    "max_speed",
    "moving_time",
    "total_distance"
  ],
  "title": "BaseEquipment",
  "type": "object"
}

Fields:

avg_pace pydantic-field

avg_pace

Average pace during the workout segment.

avg_speed pydantic-field

avg_speed

Average speed during the workout segment.

max_pace pydantic-field

max_pace

Fastest pace achieved.

max_speed pydantic-field

max_speed

Maximum speed achieved.

moving_time pydantic-field

moving_time

Total time spent actively moving.

total_distance pydantic-field

total_distance

Total distance covered.

Treadmill pydantic-model

Bases: BaseEquipment

Treadmill-specific performance data from a workout.

Show JSON schema:
{
  "$defs": {
    "PerformanceMetric": {
      "description": "A single performance metric with display and raw values.",
      "properties": {
        "display_value": {
          "description": "Formatted value for display (e.g. '6:30').",
          "title": "Display Value"
        },
        "display_unit": {
          "description": "Unit label for display (e.g. 'min/mi', 'mph').",
          "title": "Display Unit",
          "type": "string"
        },
        "metric_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
          "title": "Metric Value"
        }
      },
      "required": [
        "display_value",
        "display_unit",
        "metric_value"
      ],
      "title": "PerformanceMetric",
      "type": "object"
    }
  },
  "description": "Treadmill-specific performance data from a workout.",
  "properties": {
    "avg_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average pace during the workout segment."
    },
    "avg_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average speed during the workout segment."
    },
    "max_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Fastest pace achieved."
    },
    "max_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Maximum speed achieved."
    },
    "moving_time": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total time spent actively moving."
    },
    "total_distance": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total distance covered."
    },
    "avg_incline": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average incline during the treadmill segment."
    },
    "elevation_gained": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total elevation gained."
    },
    "max_incline": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Maximum incline achieved."
    }
  },
  "required": [
    "avg_pace",
    "avg_speed",
    "max_pace",
    "max_speed",
    "moving_time",
    "total_distance",
    "avg_incline",
    "elevation_gained",
    "max_incline"
  ],
  "title": "Treadmill",
  "type": "object"
}

Fields:

avg_incline pydantic-field

avg_incline

Average incline during the treadmill segment.

elevation_gained pydantic-field

elevation_gained

Total elevation gained.

max_incline pydantic-field

max_incline

Maximum incline achieved.

Rower pydantic-model

Bases: BaseEquipment

Rower-specific performance data from a workout.

Show JSON schema:
{
  "$defs": {
    "PerformanceMetric": {
      "description": "A single performance metric with display and raw values.",
      "properties": {
        "display_value": {
          "description": "Formatted value for display (e.g. '6:30').",
          "title": "Display Value"
        },
        "display_unit": {
          "description": "Unit label for display (e.g. 'min/mi', 'mph').",
          "title": "Display Unit",
          "type": "string"
        },
        "metric_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
          "title": "Metric Value"
        }
      },
      "required": [
        "display_value",
        "display_unit",
        "metric_value"
      ],
      "title": "PerformanceMetric",
      "type": "object"
    }
  },
  "description": "Rower-specific performance data from a workout.",
  "properties": {
    "avg_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average pace during the workout segment."
    },
    "avg_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average speed during the workout segment."
    },
    "max_pace": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Fastest pace achieved."
    },
    "max_speed": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Maximum speed achieved."
    },
    "moving_time": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total time spent actively moving."
    },
    "total_distance": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Total distance covered."
    },
    "avg_cadence": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average strokes per minute."
    },
    "avg_power": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Average power output in watts."
    },
    "max_cadence": {
      "allOf": [
        {
          "$ref": "#/$defs/PerformanceMetric"
        }
      ],
      "description": "Maximum strokes per minute achieved."
    }
  },
  "required": [
    "avg_pace",
    "avg_speed",
    "max_pace",
    "max_speed",
    "moving_time",
    "total_distance",
    "avg_cadence",
    "avg_power",
    "max_cadence"
  ],
  "title": "Rower",
  "type": "object"
}

Fields:

avg_cadence pydantic-field

avg_cadence

Average strokes per minute.

avg_power pydantic-field

avg_power

Average power output in watts.

max_cadence pydantic-field

max_cadence

Maximum strokes per minute achieved.

PerformanceSummary pydantic-model

Bases: OtfItemBase

Represents a workout performance summary - much of the same data as in the app, but not all.

You likely want to use the Workout model and get_workouts method instead.

Show JSON schema:
{
  "$defs": {
    "HeartRate": {
      "description": "Heart rate statistics from a workout.",
      "properties": {
        "max_hr": {
          "description": "Member's configured max heart rate.",
          "title": "Max Hr",
          "type": "integer"
        },
        "peak_hr": {
          "description": "Highest heart rate reached during the workout.",
          "title": "Peak Hr",
          "type": "integer"
        },
        "peak_hr_percent": {
          "description": "Peak HR as a percentage of max HR.",
          "title": "Peak Hr Percent",
          "type": "integer"
        },
        "avg_hr": {
          "description": "Average heart rate during the workout.",
          "title": "Avg Hr",
          "type": "integer"
        },
        "avg_hr_percent": {
          "description": "Average HR as a percentage of max HR.",
          "title": "Avg Hr Percent",
          "type": "integer"
        }
      },
      "required": [
        "max_hr",
        "peak_hr",
        "peak_hr_percent",
        "avg_hr",
        "avg_hr_percent"
      ],
      "title": "HeartRate",
      "type": "object"
    },
    "PerformanceMetric": {
      "description": "A single performance metric with display and raw values.",
      "properties": {
        "display_value": {
          "description": "Formatted value for display (e.g. '6:30').",
          "title": "Display Value"
        },
        "display_unit": {
          "description": "Unit label for display (e.g. 'min/mi', 'mph').",
          "title": "Display Unit",
          "type": "string"
        },
        "metric_value": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "integer"
            }
          ],
          "description": "The raw value of the metric, as a float or int. When time this reflects seconds.",
          "title": "Metric Value"
        }
      },
      "required": [
        "display_value",
        "display_unit",
        "metric_value"
      ],
      "title": "PerformanceMetric",
      "type": "object"
    },
    "Rower": {
      "description": "Rower-specific performance data from a workout.",
      "properties": {
        "avg_pace": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average pace during the workout segment."
        },
        "avg_speed": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average speed during the workout segment."
        },
        "max_pace": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Fastest pace achieved."
        },
        "max_speed": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Maximum speed achieved."
        },
        "moving_time": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Total time spent actively moving."
        },
        "total_distance": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Total distance covered."
        },
        "avg_cadence": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average strokes per minute."
        },
        "avg_power": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average power output in watts."
        },
        "max_cadence": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Maximum strokes per minute achieved."
        }
      },
      "required": [
        "avg_pace",
        "avg_speed",
        "max_pace",
        "max_speed",
        "moving_time",
        "total_distance",
        "avg_cadence",
        "avg_power",
        "max_cadence"
      ],
      "title": "Rower",
      "type": "object"
    },
    "Treadmill": {
      "description": "Treadmill-specific performance data from a workout.",
      "properties": {
        "avg_pace": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average pace during the workout segment."
        },
        "avg_speed": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average speed during the workout segment."
        },
        "max_pace": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Fastest pace achieved."
        },
        "max_speed": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Maximum speed achieved."
        },
        "moving_time": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Total time spent actively moving."
        },
        "total_distance": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Total distance covered."
        },
        "avg_incline": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Average incline during the treadmill segment."
        },
        "elevation_gained": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Total elevation gained."
        },
        "max_incline": {
          "allOf": [
            {
              "$ref": "#/$defs/PerformanceMetric"
            }
          ],
          "description": "Maximum incline achieved."
        }
      },
      "required": [
        "avg_pace",
        "avg_speed",
        "max_pace",
        "max_speed",
        "moving_time",
        "total_distance",
        "avg_incline",
        "elevation_gained",
        "max_incline"
      ],
      "title": "Treadmill",
      "type": "object"
    },
    "ZoneTimeMinutes": {
      "description": "Time spent in each heart rate zone during a workout, measured in minutes.",
      "properties": {
        "gray": {
          "description": "Minutes in the gray (rest) zone.",
          "title": "Gray",
          "type": "integer"
        },
        "blue": {
          "description": "Minutes in the blue (light effort) zone.",
          "title": "Blue",
          "type": "integer"
        },
        "green": {
          "description": "Minutes in the green (base pace) zone.",
          "title": "Green",
          "type": "integer"
        },
        "orange": {
          "description": "Minutes in the orange (push pace) zone.",
          "title": "Orange",
          "type": "integer"
        },
        "red": {
          "description": "Minutes in the red (all-out) zone.",
          "title": "Red",
          "type": "integer"
        }
      },
      "required": [
        "gray",
        "blue",
        "green",
        "orange",
        "red"
      ],
      "title": "ZoneTimeMinutes",
      "type": "object"
    }
  },
  "description": "Represents a workout performance summary - much of the same data as in the app, but not all.\n\nYou likely want to use the `Workout` model and `get_workouts` method instead.",
  "properties": {
    "id": {
      "description": "Unique identifier for this performance summary",
      "title": "Id",
      "type": "string"
    },
    "ratable": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether this workout is eligible for rating.",
      "title": "Ratable"
    },
    "calories_burned": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Total calories burned.",
      "title": "Calories Burned"
    },
    "splat_points": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Total splat points earned.",
      "title": "Splat Points"
    },
    "step_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Total step count.",
      "title": "Step Count"
    },
    "zone_time_minutes": {
      "anyOf": [
        {
          "$ref": "#/$defs/ZoneTimeMinutes"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Time spent in each HR zone."
    },
    "heart_rate": {
      "anyOf": [
        {
          "$ref": "#/$defs/HeartRate"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Heart rate statistics."
    },
    "rower_data": {
      "anyOf": [
        {
          "$ref": "#/$defs/Rower"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Rower performance data."
    },
    "treadmill_data": {
      "anyOf": [
        {
          "$ref": "#/$defs/Treadmill"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Treadmill performance data."
    }
  },
  "required": [
    "id"
  ],
  "title": "PerformanceSummary",
  "type": "object"
}

Fields:

performance_summary_id pydantic-field

performance_summary_id

Unique identifier for this performance summary

ratable pydantic-field

ratable = None

Whether this workout is eligible for rating.

class_history_uuid property

class_history_uuid

Alias for performance_summary_id.

calories_burned pydantic-field

calories_burned = None

Total calories burned.

splat_points pydantic-field

splat_points = None

Total splat points earned.

step_count pydantic-field

step_count = None

Total step count.

zone_time_minutes pydantic-field

zone_time_minutes = None

Time spent in each HR zone.

heart_rate pydantic-field

heart_rate = None

Heart rate statistics.

rower_data pydantic-field

rower_data = None

Rower performance data.

treadmill_data pydantic-field

treadmill_data = None

Treadmill performance data.