Best approach to import custom CSV (Glucose) into Activity XData?

28 views
Skip to first unread message

Danylo Burenkov

unread,
Dec 30, 2025, 6:19:05 PM (3 days ago) 12/30/25
to golden-cheetah-users

Hi everyone,

I’m looking for some guidance on the best way to integrate custom blood glucose data (from a CGM) into my run activities in Golden Cheetah.

The Goal: I have a separate CSV file containing glucose readings (timestamp + value) that I want to overlay onto my existing run activities so I can correlate glucose drops/spikes with effort (Power/HR) in the Activity Analysis view.

My Data: My glucose data is in a standard CSV format looking roughly like this: timestamp, glucose_mgdl 2023-10-27 10:05:00, 110 2023-10-27 10:10:00, 108 ...

Questions:

  1. Integration Point: Is XData (Extra Data) the correct place to store this series if I want to visualize it in the Ride Plot?

  2. Timestamps: Since my CSV uses absolute timestamps and the activity data likely uses "seconds from start," is there a built-in function or preferred Python method within GC to handle this alignment automatically?

  3. Automation: Ideally, I'd like to script this. Has anyone shared a Python script for GC that reads an external CSV and injects it into the current activity's XData?

Any pointers to existing wiki pages, similar scripts, or the relevant API documentation for the Python console would be greatly appreciated.

Thanks!

Ale Martinez

unread,
Dec 30, 2025, 6:30:48 PM (3 days ago) 12/30/25
to golden-cheetah-users
El martes, 30 de diciembre de 2025 a la(s) 8:19:05 p.m. UTC-3, Danylo Burenkov escribió:

Hi everyone,

I’m looking for some guidance on the best way to integrate custom blood glucose data (from a CGM) into my run activities in Golden Cheetah.

The Goal: I have a separate CSV file containing glucose readings (timestamp + value) that I want to overlay onto my existing run activities so I can correlate glucose drops/spikes with effort (Power/HR) in the Activity Analysis view.

My Data: My glucose data is in a standard CSV format looking roughly like this: timestamp, glucose_mgdl 2023-10-27 10:05:00, 110 2023-10-27 10:10:00, 108 ...

Questions:

  1. Integration Point: Is XData (Extra Data) the correct place to store this series if I want to visualize it in the Ride Plot?

Yes 
  1. Timestamps: Since my CSV uses absolute timestamps and the activity data likely uses "seconds from start," is there a built-in function or preferred Python method within GC to handle this alignment automatically?

You can import the CSV modified to our expected format as a separate activity (see https://github.com/GoldenCheetah/GoldenCheetah/wiki/FAQ-DATA#how-external-data-can-be-incorporated-as-xdata), then use Activity > Merge to handle the unification process, this would be the easiest way to start and play with the data.
  1. Automation: Ideally, I'd like to script this. Has anyone shared a Python script for GC that reads an external CSV and injects it into the current activity's XData?

Any pointers to existing wiki pages, similar scripts, or the relevant API documentation for the Python console would be greatly appreciated.

For automation you need a Custom Data Processor which can read the CSV, likely named accordingly, and create the corresponding XData series, documentation and examples are in https://github.com/GoldenCheetah/GoldenCheetah/wiki/UG_Special-Topics_Custom-Data-Processors-in-Python 
Reply all
Reply to author
Forward
0 new messages