IP Library Granted Patent US 11,623,121
Granted Patent B1
US 11,623,121 · App. 16/292,969 · Granted Apr 11, 2023

Using aggregate activity data to generate a grade adjusted pace model

Inventor: Drew Robb (San Francisco, CA)
Assignee: Strava, Inc.
A63B24/0075A61B5/024A61B5/1112A61B5/7203A63B71/0686G01C5/00G01C9/02G16H20/30A61B2503/10A63B71/0622A63B2071/0694A63B2220/18A63B2220/20A63B2220/30A63B2220/62A63B2220/73A63B2230/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,623,121
App. No.
16/292,969
Granted
Apr 11, 2023
Kind
B1
Abstract

Using aggregate activity data to generate a grade adjusted pace model is disclosed, including: receiving a plurality of activities; selecting a portion of the plurality of activities based at least in part on recorded heart rate information associated with the plurality of activities; and generating a Grade Adjusted Pace (GAP) model based at least in part on the selected portion of the plurality of activities.

Claims (71)

1. A system, comprising:

a memory; and

a processor coupled to the memory and configured to:

receive, from a plurality of devices enabled to record location information and elevation information, a plurality of activities associated with a plurality of athletes;

select a portion of the plurality of activities based at least in part on recorded heart rate information associated with the plurality of activities, including to:

divide the plurality of activities into a plurality of windows, wherein each window comprises recorded GPS data points that were recorded within a predetermined length of time; and

for each athlete, select a corresponding subset of windows associated with that athlete based at least in part on the corresponding subset of windows associated with that athlete meeting a predetermined percentile range of heart rate associated with that athlete;

generate a Grade Adjusted Pace (GAP) model based at least in part on the selected portion of the plurality of activities;

receive, from a first device, an activity comprising a plurality of GPS data points;

adjust the activity using the GAP model, including to adjust a respective pace corresponding to a GPS data point of the plurality of GPS data points based at least in part on a GAP coefficient associated with a corresponding elevation associated with that GPS data point; and

output, at a user interface of the first device, a visualization associated with the adjusted activity, including to:

output adjusted respective paces corresponding to the plurality of GPS data points in the visualization;

output non-adjusted respective paces corresponding to the plurality of GPS data points in the visualization; and

wherein the output of the adjusted respective paces and the non-adjusted respective paces are overlaid over recorded elevation gradients corresponding to the plurality of GPS data points.

2. The system of claim 1 , wherein the activity comprises one or more of the following: geographic data, elevation data, time data, and heart rate data.

3. The system of claim 1 , wherein the plurality of activities comprises a plurality of running activities.

4. The system of claim 1 , wherein the portion of the plurality of activities comprises a first portion, wherein prior to selecting the first portion of the plurality of activities based at least in part on the recorded heart rate information associated with the plurality of activities, the processor is configured to filter out a second portion of the plurality of activities, wherein the second portion is associated with anomalous or noisy activity data.

5. The system of claim 1 , wherein the processor is further configured to:

determine a filtered plurality of activities based at least in part on removing a portion of windows associated with noisy or anomalous data from the plurality of windows;

determine a set of normalized window paces corresponding to that athlete based at least in part on the corresponding subset of windows associated with that athlete;

determine a plurality of gradient bins;

determine for each gradient bin, one or more corresponding normalized window paces associated with any athlete; and

determine a corresponding grade adjustment pace value based at least in part on the one or more corresponding normalized window paces for each gradient bin, wherein the GAP model is determined based at least in part on a plurality of corresponding grade adjustment pace values corresponding to respective ones of the plurality of gradient bins.

6. The system of claim 1 , wherein for each athlete, to select the corresponding subset of windows associated with that athlete comprises to:

order windows of activity data associated with that athlete based on the recorded heart rate information; and

select from the ordered windows of activity data the corresponding subset of windows that is associated with the predetermined percentile range of heart rate associated with that athlete.

7. The system of claim 5 , wherein to determine the set of normalized window paces corresponding to that athlete based at least in part on the corresponding subset of windows associated with that athlete comprises to:

select a filtered subset of windows associated with mean gradient(s) near zero from the corresponding subset of windows;

determine a median pace near zero gradient associated with the filtered subset of windows; and

determine a normalized window pace corresponding to each of the corresponding subset of windows based at least in part on the median pace near zero gradient.

8. A method, comprising:

receiving, from a plurality of devices enabled to record location information and elevation information, a plurality of activities associated with a plurality of athletes;

selecting a portion of the plurality of activities based at least in part on recorded heart rate information associated with the plurality of activities, including:

dividing the plurality of activities into a plurality of windows, wherein each window comprises recorded GPS data points that were recorded within a predetermined length of time; and

for each athlete, selecting a corresponding subset of windows associated with that athlete based at least in part on the corresponding subset of windows associated with that athlete meeting a predetermined percentile range of heart rate associated with that athlete;

generating a Grade Adjusted Pace (GAP) model based at least in part on the selected portion of the plurality of activities;

receiving, from a first device, an activity comprising a plurality of GPS data points;

adjusting the activity using the GAP model, including adjusting a respective pace corresponding to a GPS data point of the plurality of GPS data points based at least in part on a GAP coefficient associated with a corresponding elevation associated with that GPS data point; and

outputting, at a user interface of the first device, a visualization associated with the adjusted activity, including:

outputting adjusted respective paces corresponding to the plurality of GPS data points in the visualization;

outputting non-adjusted respective paces corresponding to the plurality of GPS data points in the visualization; and

wherein the outputting of the adjusted respective paces and the non-adjusted respective paces are overlaid over recorded elevation gradients corresponding to the plurality of GPS data points.

9. The method of claim 8 , wherein the activity comprises one or more of the following: geographic data, elevation data, time data, and heart rate data.

10. The method of claim 8 , wherein the plurality of activities comprises a plurality of running activities.

11. The method of claim 8 , wherein the portion of the plurality of activities comprises a first portion, wherein prior to selecting the first portion of the plurality of activities based at least in part on the recorded heart rate information associated with the plurality of activities, the method further comprises filtering out a second portion of the plurality of activities, wherein the second portion is associated with anomalous or noisy activity data.

12. The method of claim 8 , further comprising:

determining a filtered plurality of activities based at least in part on removing a portion of windows associated with noisy or anomalous data from the plurality of windows;

determining a set of normalized window paces corresponding to that athlete based at least in part on the corresponding subset of windows associated with that athlete;

determining a plurality of gradient bins;

determining for each gradient bin, one or more corresponding normalized window paces associated with any athlete; and

determining a corresponding grade adjustment pace value based at least in part on the one or more corresponding normalized window paces for each gradient bin, wherein the GAP model is determined based at least in part on a plurality of corresponding grade adjustment pace values corresponding to respective ones of the plurality of gradient bins.

13. The method of claim 8 , wherein for each athlete, selecting the corresponding subset of windows associated with that athlete comprises:

ordering windows of activity data associated with that athlete based on the recorded heart rate information; and

selecting from the ordered windows of activity data the corresponding subset of windows that is associated with the predetermined range of percentile heart rates associated with that athlete.

14. The method of claim 12 , wherein determining the set of normalized window paces corresponding to that athlete based at least in part on the corresponding subset of windows associated with that athlete comprises:

selecting a filtered subset of windows associated with mean gradient(s) near zero from the corresponding subset of windows;

determining a median pace near zero gradient associated with the filtered subset of windows; and

determining a normalized window pace corresponding to each of the corresponding subset of windows based at least in part on the median pace near zero gradient.

15. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving, from a plurality of devices enabled to record location information and elevation information, a plurality of activities associated with a plurality of athletes;

selecting a portion of the plurality of activities based at least in part on recorded heart rate information associated with the plurality of activities, including:

dividing the plurality of activities into a plurality of windows, wherein each window comprises recorded GPS data points that were recorded within a predetermined length of time; and

for each athlete, selecting a corresponding subset of windows associated with that athlete based at least in part on the corresponding subset of windows associated with that athlete meeting a predetermined percentile range of heart rate associated with that athlete;

generating a Grade Adjusted Pace (GAP) model based at least in part on the selected portion of the plurality of activities;

receiving, from a first device, an activity comprising a plurality of GPS data points;

adjusting the activity using the GAP model, including adjusting a respective pace corresponding to a GPS data point of the plurality of GPS data points based at least in part on a GAP coefficient associated with a corresponding elevation associated with that GPS data point; and

outputting, at a user interface of the first device, a visualization associated with the adjusted activity, including:

outputting adjusted respective paces corresponding to the plurality of GPS data points in the visualization;

outputting non-adjusted respective paces corresponding to the plurality of GPS data points in the visualization; and

wherein the outputting of the adjusted respective paces and the non-adjusted respective paces are overlaid over recorded elevation gradients corresponding to the plurality of GPS data points.

16. The computer program product of claim 15 , wherein the portion of the plurality of activities comprises a first portion, wherein prior to selecting the first portion of the plurality of activities based at least in part on the recorded heart rate information associated with the plurality of activities, further comprising filtering out a second portion of the plurality of activities, wherein the second portion is associated with anomalous or noisy activity data.

Assignments (2)
SECURITY INTEREST Recorded Apr 15, 2025
From: STRAVA, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070843/0054 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2019
From: ROBB, DREW
To: STRAVA, INC.
Reel/Frame 049384/0421 →
Continuity (1)
Provisional Application 62731680 · Sep 14, 2018
Cited By (1)
US 12,656,139