compare_best_efforts
Compare peak efforts (e.g. 1/5/20 min power) across activities side by side to track training blocks, races, or gear/power meter differences; returns best averages by duration.
Instructions
Use to compare peak efforts (e.g. 1 / 5 / 20 min power) of several activities side by side: development over a block, races, or whether a new bike or power meter reads differently.
Returns a matrix of activities (date, sport, gear, FTP at the time) by duration with the best average of the stream, and the best activity per duration. Activities come from activity_ids or a date range (default the last 90 days), filtered by sport and gear; newest first, limit 10 (max 25), at most 10 durations. Power meters of different bikes are not calibrated against each other; no verdict. Read-only; one API call per activity and duration (up to 250) plus the list and gear calls. One activity in detail: get_best_efforts. Method: intervals://methods/comparisons (get_guide).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum activities, newest first; capped to 1-25 | |
| stream | No | Stream, e.g. watts, heartrate, velocity_smooth | watts |
| gear_id | No | Only activities on this gear id (get_gear_list) | |
| end_date | No | Last day YYYY-MM-DD; default today | |
| durations | No | Comma-separated seconds, at most 10, e.g. "60,300,1200" | 60,300,1200 |
| athlete_id | No | Default: the configured athlete | |
| start_date | No | First day YYYY-MM-DD; without activity_ids default 90 days before end_date | |
| sport_types | No | Comma-separated activity types, e.g. "Ride,GravelRide" | |
| activity_ids | No | Comma-separated activity ids; otherwise the date range is used | |
| output_format | No | json = machine-readable, all fields | text |