The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

aidR: YourLoops export format

library(aidR)

Overview

A YourLoops export is a folder (possibly zipped) containing CSV files for several data types:

 [1] "alarms.csv"                      "basal.csv"                      
 [3] "bolus.csv"                       "cbg.csv"                        
 [5] "meals.csv"                       "physicalActivities.csv"         
 [7] "rescuecarbs.csv"                 "settings-cgm.csv"               
 [9] "settings-current-parameters.csv" "settings-device.csv"            
[11] "settings-pump.csv"               "settings-security-basals.csv"   

The column headers are always in English, regardless of the user’s account language. Timestamps are given in UTC alongside a separate timezone offset in minutes, so recovering local (wall-clock) time requires combining the two. This example shows a file containing CGM data:

timestamp,timezoneOffSet,value,units,cgmModel
2025-07-06T00:00:18Z,120,165,mg/dL,
2025-07-06T00:05:17Z,120,167,mg/dL,
2025-07-06T00:10:17Z,120,166,mg/dL,
2025-07-06T00:15:17Z,120,168,mg/dL,
2025-07-06T00:20:18Z,120,163,mg/dL,
2025-07-06T00:25:19Z,120,155,mg/dL,
2025-07-06T00:30:19Z,120,154,mg/dL,
2025-07-06T00:35:19Z,120,152,mg/dL,
2025-07-06T00:40:19Z,120,151,mg/dL,

How aidR detects this format

Because YourLoops headers are language-independent, aidR identifies each file by matching its column names exactly against a lookup of the expected headers for each data type.

Files and the data types they produce

To inspect the raw files, we parse the export with clean = FALSE, which returns the full information provided by YourLoops:

data <- parse_data(id = "1", paths = path, clean = FALSE)
#> Parsing data for id 1...

Each entry below describes one raw file and shows an example.

head(data$cgm)
             timestamp timezoneOffSet value units cgmModel
1 2025-07-06T00:00:18Z            120   165 mg/dL       NA
2 2025-07-06T00:05:17Z            120   167 mg/dL       NA
3 2025-07-06T00:10:17Z            120   166 mg/dL       NA
4 2025-07-06T00:15:17Z            120   168 mg/dL       NA
5 2025-07-06T00:20:18Z            120   163 mg/dL       NA
6 2025-07-06T00:25:19Z            120   155 mg/dL       NA
head(data$basal)
             timestamp timezoneOffSet duration_in_milliseconds rate
1 2025-07-06T00:00:00Z            120                   665585 2.15
2 2025-07-06T00:11:05Z            120                   590009 0.00
3 2025-07-06T00:20:55Z            120                   312498 2.15
4 2025-07-06T00:26:08Z            120                   360660 3.00
5 2025-07-06T00:32:08Z            120                   297191 0.00
6 2025-07-06T00:37:05Z            120                   889353 2.75
  deliveryType
1    automated
2    automated
3    automated
4    automated
5    automated
6    automated
head(data$bolus)
             timestamp timezoneOffSet     type delivered required
1 2025-07-06T00:00:00Z            120   normal      2.50     2.50
2 2025-07-06T00:10:06Z            120   normal      4.00     4.00
3 2025-07-06T00:25:06Z            120   normal      1.05     1.05
4 2025-07-06T00:30:44Z            120   normal      0.60     0.60
5 2025-07-06T00:36:08Z            120 biphasic      0.25     0.25
6 2025-07-06T00:43:19Z            120   normal      3.55     3.55
  insulinOnBoard prescriptor   biphasicId part
1       4.336462        auto                 0
2       0.000000      manual                 0
3       9.118522        auto                 0
4      12.000910        auto                 0
5      10.320805        auto biphasic3523    1
6       9.137925        auto                 0
head(data$meals)
             timestamp timezoneOffSet           inputTimestamp carbsValue
1 2025-07-06T00:25:00Z            120 2025-07-06T00:25:58.236Z          5
2 2025-07-06T00:36:00Z            120 2025-07-06T00:36:16.189Z         40
3 2025-07-06T04:26:00Z            120 2025-07-06T04:26:35.268Z         10
4 2025-07-06T06:42:00Z            120 2025-07-06T06:42:49.128Z         30
5 2025-07-06T06:52:00Z            120 2025-07-06T06:52:03.749Z         25
6 2025-07-06T07:32:00Z            120 2025-07-06T07:32:02.747Z         25
  carbUnit is_input_meal_fat bolus.type bolus.delivered bolus.insulinOnBoard
1    grams                no     normal            1.05             9.118522
2    grams               yes   biphasic            0.25            10.320805
3    grams                no     normal            3.10             6.731373
4    grams                no     normal            0.15             2.174911
5    grams                no     normal            3.95            11.696627
6    grams                no     normal            0.30             6.086263
  bolus.prescriptor recommended.net
1              auto            1.05
2              auto            0.25
3              auto            3.10
4              auto            0.15
5              auto            3.95
6              auto            0.30
head(data$rescuecarbs)
             timestamp timezoneOffSet confirmedCarbs confirmedCarbsUnits
1 2025-07-06T13:50:30Z            120             20               grams
  prescriptor recommendedCarbs recommendedCarbsUnits
1        auto                0                 grams
head(data$alarms)
                 timestamp timezoneOffSet                inputTime    type
1 2025-07-06T08:12:30.203Z            120 2025-07-06T08:12:30.203Z handset
2 2025-07-06T10:23:34.583Z            120 2025-07-06T10:23:34.583Z handset
3 2025-07-06T15:02:33.116Z            120 2025-07-06T15:02:33.116Z handset
4 2025-07-06T17:50:00.552Z            120 2025-07-06T17:50:00.552Z handset
5 2025-07-06T23:19:01.920Z            120 2025-07-06T23:19:01.920Z handset
  level  code acknowledge_status          updateTimestamp
1 alert 20102       acknowledged 2025-07-06T10:13:33.312Z
2 alert 20100       acknowledged 2025-07-06T11:24:41.826Z
3 alert 10117       acknowledged 2025-07-06T17:12:23.001Z
4 alert 10113       acknowledged 2025-07-06T19:23:32.827Z
5 alert 20100       acknowledged 2025-07-06T23:39:33.123Z
head(data$physicalActivities)
             timestamp timezoneOffSet duration.value duration.unit
1 2025-07-06T18:00:00Z            120              0       seconds
2 2025-07-06T18:15:00Z            120           3600       seconds
  reportedIntensity           inputTimestamp
1            medium 2025-07-06T18:53:18.014Z
2            medium 2025-07-06T19:21:25.282Z
head(data$settings_pump)
        expirationDate manufacturer name swVersion   serialNumber
1 2025-07-07T20:18:19Z     VICENTRA GOLD   2.6.0.3 0000-0000-0000

Note that a YourLoops export contains no SMBG data; cgm, basal, bolus, and carbs are the core data types available from this platform.

Cleaning files

When parse_data is run with clean = TRUE, the cleaned data types are built from the following raw files and attributes:

Cleaned data type Used files Used attributes from clean = FALSE
cgm cbg.csv data$cgm
basal basal.csv data$basal
bolus bolus.csv data$bolus
carbs meals.csv, rescuecarbs.csv data$meals, data$rescuecarbs
total_basal basal.csv data$basal
total_bolus bolus.csv data$bolus

Notes

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.